Python 重叠前缀词regex
如何处理我声明的前缀词重叠的情况? 在这个例子中,我在寻找hello或world后面的任何词,但当这些词组合在一起时,我希望regex移到第二行,并给出后面的内容。我希望这是有道理的。 以下是我所拥有的:Python 重叠前缀词regex,python,regex,Python,Regex,如何处理我声明的前缀词重叠的情况? 在这个例子中,我在寻找hello或world后面的任何词,但当这些词组合在一起时,我希望regex移到第二行,并给出后面的内容。我希望这是有道理的。 以下是我所拥有的: (?:hello|world)(?:.*?\s+\S+) 结果如下所示: 你好234234sdfsfs 世界23424f 你好世界:sdfrwefwggds 粗体表示突出显示的区域 对于helloworld:sdfrwefwggds示例,我正在查找sdfrwefwggds 谢谢 您可以使
(?:hello|world)(?:.*?\s+\S+)
结果如下所示:
- 你好234234sdfsfs
- 世界23424f
- 你好世界:sdfrwefwggds
helloworld:sdfrwefwggds
示例,我正在查找sdfrwefwggds
谢谢 您可以使用
(?:hello|world)(?!\w*\s+(?:hello|world))(.*?\s+\S+)
看
详细信息
-两个词中的任意一个(?:hello | world)
-在当前位置的右侧,不可能有(?!\w*\s+(?:hello | world))
-0+单词字符(使用\w*
仅匹配字母)[^\w\d\]*
-1+空格\s+
-两个词中的任意一个(?:hello | world)
-第1组:(.*s+\s+)
-0+字符,尽可能少,断线字符除外*?
-1+空格\s+
-1+除空格以外的字符\S+
(?:hello | world)(?!\s+(?:hello | world))(.\s+\s+)
这是可行的,但可能会出现这样的情况,“hello”一词可以扩展到像“hellothere world”这样的其他词,然后用(?!\w*\s+(?:hello | world))替换(?!\w*\s+(?:hello | world))
@WiktorStribi是的!非常感谢!贴出了答案。