我的文字如下:
XXX ab YYY
XXX ba ab YYY
XXX aba YYY
什么是匹配“ab”,“ba”和“ba”的单一正则表达式?我试过了
/(?=a)(ba)|ab|ba/ig
但它在第三行匹配ab
。在这里,我希望“ba”超过“ab”。
我可以通过多个正则表达式获得预期的结果。我正在寻找一个单一的正则表达式解决方案。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
满足您的示例的最快方法是匹配每个单词中a
或b
的最后两个实例:
/[ab]{2}\b/
由于您的问题意图似乎涉及匹配ab
和ba
以外的模式,因此此解决方案可能更具推广性:
/ab(?!a)|ba/
答案 1 :(得分:1)
如果你想在那个文字文本中使用这些文字字符:/(ba)|^ab/g
- 请看它在这里工作@ regular expression 101
答案 2 :(得分:1)
这必须有效(ba)|^ab
。你可以在这里查看逻辑http://regexr.com/
答案 3 :(得分:1)
此正则表达式适用于您的问题。
re.findall('(\S*ab\S.*) (ab\S*) (ba\S*)', fileName)
第一个paranthesis将帮助你提取字符串匹配ab并后跟一个单词,例如abort。接下来的两个问题将帮助您获得所需的答案。 ab,ba all in single regex。