gpt4 book ai didi

regex - 匹配单词之前或之后的字符,但不能同时匹配正则表达式

转载 作者:行者123 更新时间:2023-12-01 06:51:02 26 4
gpt4 key购买 nike

假设我需要匹配一个词 word在单词之前或单词之后可能有句点,但不能同时存在。然后word , .word , 和 word.应该匹配,但是 .word.不应该匹配。我将如何匹配它并捕获单词前后发生的事情?

这是一个简化的示例,我需要将其扩展到更复杂的情况。例如,现在符号 .'可能出现在单词之前或之后,但它们只能出现一次。例如,.word , 'word , word.' , 和 .word'只是一些有效的匹配项,但类似于 .'word.'不应该匹配,甚至不匹配 .'word' .

上面的例子是我的主要优先事项,但额外的好处是添加句号和撇号的顺序。因此'.word.'word应该都匹配。我认为应该为此工作的一种方法是 \.?'?|'?\.?word ,但我希望以某种方式使 OR 子句中的语句数不依赖于符号数。

最佳答案

好的。需要更多时间才能正确处理 word 的情况。出现在字符串的开头或结尾。

 "(?:\.word(?:[^.]|$))|(?:(?:[^.]|^)word(?:[^.]|$))|(?:(?:[^.]|^)word\.)"

regexp前瞻 回顾 (在python中测试):
 "(?:\.word(?:(?!\.)|$))|(?:(?:(?<!\.)|^)word(?:(?!\.)|$))|(?:(?:(?<!\.)|^)word\.)"

有用:
 re.findall(pattern(above), '.word. .word .word. word.'") // return ['.word ', ' word.'] 

关于regex - 匹配单词之前或之后的字符,但不能同时匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com