我想搜索一个特定的字符串,有人能告诉我为什么我看到下面的结果吗? 我在一个在线regex网站上查看了它,似乎我已经分成了3组,现在结果是打印了3组。我怎么只能把第一组分开
是否可以更改代码,以便检测小写的“字符串”
相对字符串
DD-JSH-String43423213-3774
DE-String43423214-SDC-3721
输出:
'String43423213', 'String', '43423213','String43423214', 'String', '43423214'
代码:
matches = re.findall(r'((String)(\d+))', inp)
matches = [j for sub in matches for j in sub if j != ""]
预期结果:
'String43423213', 'String43423214'
试试这个regex-demo:
python源代码:
或
输出:
说明: 由于正则表达式有两个组
String
和\d+
,re.findall返回一个列表,其中包含两个组的所有元组,如('String', 'String43423214')
。您可以像(String\d+)
或像String\d+
一样对它进行分组,这两个表达式都有效您可以这样做:
这是因为您甚至对这两个匹配项进行分组,因此必须删除外部组。您还可以添加标志
re.I
以忽略大小写:相关问题 更多 >
编程相关推荐