正则求助一下

2017-06-24 21:39:44 +08:00
 dream7758522
{a:123aaa111}{b:456aaa111}{c:789aaa111}{d:012aaa111}
想提取中括号中得第一组数字,
用正則
{.*?\d+
匹配出的是
{a:123
{b:456
{c:789
各位朋友能指导一下吗
1459 次点击
所在节点    问与答
9 条回复
vmebeh
2017-06-24 21:58:33 +08:00
{.*?(\d+)
dream7758522
2017-06-24 21:59:59 +08:00
@vmebeh 一样,没匹配出来
vmebeh
2017-06-24 22:45:58 +08:00
匹配到之后需要再多一部取出括号内的匹配
如 Python
re.search(r'\{.*?(\d+)', '{a:123aaa111}{b:456aaa111}{c:789aaa111}{d:012aaa111}').group(0)={a:123
group(1)=123
group(2)={b:456}
group(3)=456
...

其他语言不清楚
gogohigh
2017-06-24 23:30:36 +08:00
前缀长度能确定的话可以用环视,不能确定的话就只能分组捕获了
比如.*?(\d+)
输出 group1
cxbig
2017-06-24 23:31:37 +08:00
也不说用什么语言。。。
通常都是加括号来取对应内容
ethanlu
2017-06-24 23:35:39 +08:00
(\d{3})(?=aaa) 好了,http://regexr.com/3g7qq
songz
2017-06-25 03:16:10 +08:00
/\d{3}(?=\w{3})/g
hzcxdgioa
2017-06-25 07:22:23 +08:00
(?<=:)(\d*)
hzcxdgioa
2017-06-25 07:23:34 +08:00
(?<=:)(\d+)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370844

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX