我是Python的新手,我正在尝试从具有特定格式的其他字符串中提取字符串,例如:
我有原始字符串: -
dict
我需要准确提取字符串--@$_ABC1234-XX12X
(必须包含三个第一个字符,然后是四个数字)。
答案 0 :(得分:3)
您可以使用花括号repetition qualifiers {}
来匹配三个字母字符和四个数字字符:
>>> from re import search
>>>
>>> string = '---@$_ABC1234-XX12X'
>>> match = search('[a-zA-Z]{3}\d{4}', string)
>>> match
<_sre.SRE_Match object; span=(6, 13), match='ABC1234'>
>>> match.group(0) # Use this to get the string that was matched.
'ABC1234'
正则表达式的解释:
[a-zA-Z]
:匹配小写的任何字母大写...... {3}
:正好三次。而且...... \d
:任何数字字符...... {4}
恰好四次。答案 1 :(得分:1)
如果您现在是字符串的确切坐标,您可以使用以下内容:
>>> var = "--@$_ABC1234-XX12X"
>>> newstring = var[5:12]
>>> newstring
'ABC1234'
python字符串有一个切片方法。
答案 2 :(得分:0)
您可以在Python中使用re
模块
matcher = re.search((?P<matched_string>[a-zA-Z]{3}\d{4}))
needed_string = matcher.groupdict()['matched_string']
needed_string
将是您想要的输出。
对于re
模块,请参阅:https://docs.python.org/3.4/library/re.html