gpt4 book ai didi

python - Python中组的反向正则表达式匹配

转载 作者:行者123 更新时间:2023-12-03 21:12:31 27 4
gpt4 key购买 nike

我看到很多措辞相似的问题,但是我很难想出这个语法。
给定一个单词列表,我想打印所有没有特殊字符的单词。
我有一个正则表达式,可以识别带有特殊字符的单词 \w*[\u00C0-\u01DA']\w* .我已经看到了很多类似 simple word 等相当简单的场景的答案。 .但是,我找不到任何否定组的内容 - 我已经看到了几组不同的语法来包含否定前瞻 ?! ,但我一直无法想出一种适用于它的语法。
在我的情况下,给出一个字符串,如:“应该打印 nŌt thìs”
应该打印 shouldprint但不是其他两个词。 re.findall("(\w*[\u00C0-\u01DA']\w*)", paragraph.text)给你特殊字符 - 我只是想反转它。

最佳答案

对于这种特殊情况,您只需在搜索中指定常规字母范围:

a = "should print nŌt thìs"
re.findall(r"(\b[A-Za-z]+\b)", a)
# ['should', 'print']
当然,您也可以添加数字或其他任何您想要匹配的内容。
至于负前瞻,它们使用语法 (?!...) , 与 ?之前 ! ,并且它们必须在括号中。要在此处使用,您可以使用:
r"\b(?!\w*[À-ǚ])\w*"
这个:
  • 检查单词边界 \b ,如空格或输入字符串的开头。
  • 如果找到任何以 0 个或多个单词字符开头的特殊字符,则执行否定前瞻并停止匹配。您必须包含 \w*因为 (?![À-ǚ])只会检查特殊字符是否是单词中的第一个字母。
  • 最后,如果它通过前瞻,它匹配任何单词字符。

  • Demo .请注意,在 regex101.com 中,您必须为 \b 指定 Python 风格使用特殊字符正常工作。
    还有第三种选择:
    r"\b[^À-ǚ\s]*\b"
    中间部分 [^À-ǚ\s]*表示无限次匹配除特殊字符或空格以外的任何字符。

    关于python - Python中组的反向正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62827186/

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