re.split 但仍保持现状
re.split but leaving in the condition
我有一个示例文本字符串 text_var = 'ndTail7-40512-1'
,我想在第一次看到一个数字后跟一个数字时拆分 - 但我想保留该数字。目前,我有 print(re.split('\d*(?=-)',text_var,1))
,我的输出是 ['ndTail', '-40512-1']
。但我想保留作为触发器的数字,所以它应该看起来像 ['ndTail', '7-40512-1']
。有帮助吗?
我们可以在这里尝试使用 re.findall
:
text_var = 'ndTail7-40512-1'
matches = re.findall(r'(.*?)(\d-.*$)', text_var)
print(matches[0])
这会打印:
('ndTail', '7-40512-1')
有时使用 re.findall
比 re.split
更容易。
此处使用的正则表达式模式表示:
(.*?) match AND capture all content up to, but including
(\d-.*$) the first digit which is followed by a hyphen;
match and capture this content all the way to the end of the input
请注意,我们使用的 re.findall
通常有可能 return 多个匹配项。然而,在这种情况下,我们的模式匹配到输入的末尾,所以我们只剩下一个包含两个所需捕获组的元组。
我有一个示例文本字符串 text_var = 'ndTail7-40512-1'
,我想在第一次看到一个数字后跟一个数字时拆分 - 但我想保留该数字。目前,我有 print(re.split('\d*(?=-)',text_var,1))
,我的输出是 ['ndTail', '-40512-1']
。但我想保留作为触发器的数字,所以它应该看起来像 ['ndTail', '7-40512-1']
。有帮助吗?
我们可以在这里尝试使用 re.findall
:
text_var = 'ndTail7-40512-1'
matches = re.findall(r'(.*?)(\d-.*$)', text_var)
print(matches[0])
这会打印:
('ndTail', '7-40512-1')
有时使用 re.findall
比 re.split
更容易。
此处使用的正则表达式模式表示:
(.*?) match AND capture all content up to, but including
(\d-.*$) the first digit which is followed by a hyphen;
match and capture this content all the way to the end of the input
请注意,我们使用的 re.findall
通常有可能 return 多个匹配项。然而,在这种情况下,我们的模式匹配到输入的末尾,所以我们只剩下一个包含两个所需捕获组的元组。