提取具有特定格式的字符串

时间:2017-07-17 05:34:35

标签: python string python-3.x

我是Python的新手,我正在尝试从具有特定格式的其他字符串中提取字符串,例如:

我有原始字符串: -

dict

我需要准确提取字符串--@$_ABC1234-XX12X (必须包含三个第一个字符,然后是四个数字)。

3 个答案:

答案 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