gpt4 book ai didi

Python正则表达式选择 "not include"字

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:59 31 4
gpt4 key购买 nike

我试图在字符串中查找不包含任何“a”字符的单词。我写了下面的代码,但它不起作用。我怎么能对正则表达式说“不包括”?我不能用“^”符号表示“不是”吗?

import re
string2 = "asfdba12312sssdr1 12şljş1 kf"
t = re.findall(r'([^a]\w*) | \w*[^a] ', string2 )
print(t)

该代码的结果是 ['sfdba12312sssdr1', '12şljş1']"

最佳答案

您需要使用带有 re.UNICODE 标志的单词边界的正则表达式:

r = re.compile(ur'\b[^\Wa]+\b', re.UNICODE)

届时 \W\b 将支持 Unicode。

参见 regex demo

[^\Wa] 匹配任何 Unicode 字母、数字或下划线,但不匹配 a。添加一个 re.I 标志以使其不区分大小写。

如果不想用数字匹配单词,在char类中添加\d:[^\W\da]

参见 Python demo :

# -*- coding: utf-8 -*-
import re
p = re.compile(ur'\b[^\Wa]+\b', re.UNICODE)
s = u"asfdba12312sssdr1 12şljş1 kf"
res = [x.encode('utf8') for x in p.findall(s)]
print(res)

关于Python正则表达式选择 "not include"字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37540405/

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