RegEx匹配字符串或全部/从匹配中删除字符串

时间:2016-01-21 07:09:44

标签: regex regex-lookarounds

我试图搜索但找不到我的情况。我需要在字符串“part 1”或“part 2”等之前匹配所有字符串。但是如果没有任何“part x”字符串匹配所有字符串。例如:

  • 这里的任何一句话第1部分
  • 这里的任何词语第2部分
  • 这里有任何文字

它应该总是返回“任何字在这里”。我试过这个

(.+)(?=\spart\s\d|\sPart\s\d)

但是当“part x”缺失时它不匹配。其他解决方案是从匹配中删除任何“part x”字符串。

谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

^(.*?)(?: part \d+)?$

RegEx Demo

答案 1 :(得分:0)

^.+?(?=part\s*1|part\s*2|$)

使用anchors ored part 1part 2。请参阅演示。

https://regex101.com/r/cZ0sD2/5

^.+?(?=part\s*\d+|$)