重叠的词正则表达式

时间:2018-12-14 00:28:20

标签: python regex

如何处理我声明的前缀词重叠的情况? 在这个例子中,我正在寻找“ hello”或“ world”之后的内容,但是当单词组合在一起时,我希望正则表达式移到第二行,然后给我后面的内容。我希望这是有道理的。 这就是我所拥有的:

(?:hello|world)(?:.*?\s+\S+)

结果如下:

  • 你好234234sdf sfs
  • 世界23424f
  • 你好世界:sdfrwefwggds

粗体代表突出显示的区域

对于hello world: sdfrwefwggds示例,我正在寻找sdfrwefwggds

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用

 (?:hello|world)(?!\w*\s+(?:hello|world))(.*?\s+\S+)

请参见Python demo

详细信息

  • (?:hello|world)-两个词之一
  • (?!\w*\s+(?:hello|world))-当前位置右侧,不能有
    • \w*-0个以上的字符字符(使用[^\W\d_]*仅匹配字母)
    • \s+-超过1个空格
    • (?:hello|world)-两个词之一
  • (.*?\s+\S+)-第1组:
    • .*?-除换行符以外的0+个字符,尽可能少的
    • \s+-超过1个空格
    • \S+-除空格以外的1个以上字符