我在Python中遇到了插入符号和美元符号的问题。 我想找到每个以数字开头并以字母结尾的单词
这是我已经尝试过的:
import re
text = "Cell: 415kkk -555- 9999ll Work: 212-555jjj -0000"
phoneNumRegex = re.compile(r'^d+w+$')
print(phoneNumRegex.findall(text))
结果为空列表:
[]
我想要的结果:
415kkk, 9999ll, 555jjj
问题出在哪里?
正则表达式的问题:
-
^...$
意味着你只想要整个字符串的完整匹配 - 摆脱它。 -
r'w+'
的意思是"任何单词字符",表示字母+数字(大小写不合理)加上下划线'_'
。因此,这将匹配'5555'
通过'555'
r'd+'
和另一个'5'
'w+'
因此将其添加到结果中。
你需要
import re
text = "Cell: 415kkk -555- 9999ll Work: 212-555jjj -0000"
phoneNumRegex = re.compile(r'bd+[a-zA-Z]+b')
print(phoneNumRegex.findall(text))
相反:
['415kkk', '9999ll', '555jjj']
'b'
是单词边界,因此您不匹配'_§$abcd1111+§$'
内部的'abcd1111'
。
阅读:
- 重新语法
- regex101.com - 可以处理python语法的正则表达式测试器网站