是否可以匹配模式之后出现的模式,例如:
ssasabafra
匹配b之后的所有a?香港专业教育学院曾尝试使用这样的背后:
(?<=b)[a]+
但它只匹配第一个a
有没有办法匹配b
之后的所有出现?
答案 0 :(得分:2)
如果您使用的表达式引擎允许在lookbehind表达式中重复,那么:
(?<=b.*?)a
这看起来是b
后跟任意数量的字符,并匹配a
对于大多数正则表达式引擎,我不认为这是可能的。但是,您可以做的是将字符串拆分为b
,将第二部分与/a/
匹配,然后再次使用b
加入两个字符串。
答案 1 :(得分:0)
这个怎么样:
a(?=[^b]*$)
但是,这并不能确保b
之前有一些a
。我想你想要匹配所有a
,后面跟着一些包含b
的子字符串。
请参阅RegexPal
上的演示如果你想确保在b
之前必须有a
,那么你应该使用特定编程语言中的字符串操作函数。