0

我有类似于以下的输入:

TV-12VX
TV-14JW
TV-2JIS
VC-224X

我需要删除破折号后的数字之后的所有内容。结果将是:

TV-12
TV-14
TV-2
TV-224

我将如何通过正则表达式进行拆分?

4

4 回答 4

3

以下代码显示了如何匹配“TV-”+(某个数字)形式的字符串:

>>> re.match('TV-[0-9]+','TV-12VX').group(0)
'TV-12'

(请注意,因为我使用的是match,这仅在字符串以您要提取的位开头时才有效。)

于 2012-08-06T00:24:33.067 回答
1

我认为这个正则表达式适合你:(.+?-\d+?)[a-zA-Z]. 您可以将它与re.findall, 或一起使用re.match

于 2012-08-06T00:23:23.633 回答
1
import re
p = re.match('([\w]{2}-\d+)', 'TV-12VX')
print(p.group(0))

输出

TV-12
于 2012-08-06T00:28:35.553 回答
1

您可以使用以下方法删除数字之后的所有内容:

re.sub(r"^(\w+-\d+).*", r"\1", input)
于 2012-08-06T00:29:32.983 回答