繁体   English   中英

如何在python中编写正则表达式,以选择所有以特定数字开头的字符串

[英]How do you write a regex in python which picks out all strings beginning with a specific number

我正试图让此正则表达式同时选择7gh和7ui,但我只能让它选择第一个。 如果有人知道如何修改正则表达式,使其也可以选择7ui,我将非常感谢。 我还应该指出,我的意思是字符串之间用空格隔开。

b = re.search(r'^7\w+','7gh ghj 7ui')
c = b.group()

删除^并使用findall()

>>> re.findall(r'7\w+','7gh ghj 7ui')
['7gh', '7ui']

您需要删除^ (字符串锚点的开头),然后使用re.findall查找string中模式的所有非重叠匹配项

import re
res = re.findall(r'7\w+','7gh ghj 7ui')
print(res)

参见Python演示

如果您需要将这些子字符串作为整个单词获取 ,请使用单词边界\\b将模式括起来:

res = re.findall(r'\b7\w+\b','7gh ghj 7ui')

您可能会发现不使用正则表达式会更容易

[s for s in my_string.split() if s.startswith('7')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM