其他正则表达式中的正则表达式的多个匹配

时间:2013-06-20 14:53:38

标签: regex

让我说我有以下字符串: “blablaoneblablablaone” 我希望在“一......一”中匹配“bla”匹配, 这意味着前两个“bla”不会被捕获,因为它们来自“one”之前。

使用正则表达式很容易完成两次(一次匹配“one ... one”和一次匹配“bla”之间的所有内容),但我的问题是关于是否可以使用单个正则表达式完成。< / p>

谢谢

2 个答案:

答案 0 :(得分:0)

你可以使用环视。

(?<=one)(bla)*(?=one)

正面观察((?<=...))会检查前面的字符是否与某种模式匹配。

正向前瞻((?=...))会检查下一个字符是否符合某种模式。

匹配字符串中不包括环视。

Test

或者您可以简单地将要提取的部分放在括号中并提取组1.(?:是使(bla)成为非捕获组,它不会更改匹配,只是得到了。)

one((?:bla)*)one

Test

答案 1 :(得分:0)

您可以使用以下正则表达式:/(?:one)([bla]+)(?:one)/g。它可以在这里测试:http://www.gethifi.com/tools/regex