匹配模式后的模式?

时间:2013-07-22 08:41:41

标签: regex

是否可以匹配模式之后出现的模式,例如:

ssasabafra

匹配b之后的所有a?香港专业教育学院曾尝试使用这样的背后:

(?<=b)[a]+

但它只匹配第一个a有没有办法匹配b之后的所有出现?

2 个答案:

答案 0 :(得分:2)

如果您使用的表达式引擎允许在lookbehind表达式中重复,那么:

(?<=b.*?)a

这看起来是b后跟任意数量的字符,并匹配a


对于大多数正则表达式引擎,我不认为这是可能的。但是,您可以做的是将字符串拆分为b,将第二部分与/a/匹配,然后再次使用b加入两个字符串。

答案 1 :(得分:0)

这个怎么样:

a(?=[^b]*$)

但是,这并不能确保b之前有一些a。我想你想要匹配所有a,后面跟着一些包含b的子字符串。

请参阅RegexPal

上的演示

如果你想确保在b之前必须有a,那么你应该使用特定编程语言中的字符串操作函数。

相关问题