我正在寻找一个正则表达式来提取仅包含字母数字字符的单词:
string = 'This is a $dollar sign !!'
matches = re.findall(regex, string)
matches = ['This', 'is', 'sign']
这可以通过对字符串进行标记并使用以下正则表达式单独评估每个标记来完成:
^[a-zA-Z0-9]+$
由于性能问题,我希望能够提取字母数字标记而不标记整个字符串。我最接近的是
regex = \b[a-zA-Z0-9]+\b
,但它仍然提取包含字母数字字符的子字符串:
string = 'This is a $dollar sign !!'
matches = re.findall(regex, string)
matches = ['This', 'is', 'dollar', 'sign']
有正则表达式可以解决这个问题吗?我尝试过不同的方法,但无法找到解决方案。
不是单词边界,而是向后查找和向前查找空格(或字符串的开头/结尾):
(?:^|(?<= ))[a-zA-Z0-9]+(?= |$)
https://regex101.com/r/TZ7q1c/1 https://regex101.com/r/TZ7q1c/1
请注意,“a”是一个独立的字母数字单词,因此它也包含在内。
['This', 'is', 'a', 'sign']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)