正则问题:(?<=a).*?(?=b)是匹配以 a 开头至到 b 结尾的中间字段,如果是有出现条件次数应该怎么写?

2019-06-08 14:14:08 +08:00
 qazwsxkevin
reg: (?<=a).*?(?=b)
那么字段会匹配出 a 和 b 中间的内容

但只是想匹配出整个字段里:
1、a 开始在整个 string 内容里,出现在第 6 次的条件匹配?
2、b 出现在整个 string 内容里,出现在第 12 次的条件匹配?(对 a 作出:从 b 到 a 逆向最近的那一个 a 为条件限定)
3、b 出现在整个 string 内容里,出现在最后一次的条件匹配?(对 a 出现不做条件限定)
4、b 出现在整个 string 内容里,出现在倒数第 3 次的条件匹配?(对 a 出现不做条件限定)

求各位高手指点这 4 个正则应该如何写?
1597 次点击
所在节点    问与答
3 条回复
xml123
2019-06-08 14:47:28 +08:00
第六次出现 a
(?<=^(a.*){5}a)
提供个思路,没测试
qazwsxkevin
2019-06-08 16:56:42 +08:00
@xml123 试着模糊句式碰撞了 N 次组合,不成功,(?<=^(场地){4})这样去碰第 6 次出现的地方都不成功,实在是太绕了。。
P233
2019-06-08 17:03:11 +08:00
我觉得这种情况不用正则,用 split 可能更好点

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

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

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

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

© 2021 V2EX