Python 提取特定格式的字符串

Python 提取特定格式的字符串,python,string,python-3.x,Python,String,Python 3.x,我是Python新手,我正在尝试从另一个具有特定格式的字符串中提取字符串,例如: 我有原始字符串:- --@$_ABC1234-XX12X 我需要准确地提取字符串ABC1234(必须包含前三个字符,后跟四位数字)。您可以使用Python中的re模块 matcher = re.search((?P<matched_string>[a-zA-Z]{3}\d{4})) needed_string = matcher.groupdict()['matched_string'] match

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

我有原始字符串:-

--@$_ABC1234-XX12X

我需要准确地提取字符串
ABC1234
(必须包含前三个字符,后跟四位数字)。

您可以使用Python中的
re
模块

matcher = re.search((?P<matched_string>[a-zA-Z]{3}\d{4}))
needed_string = matcher.groupdict()['matched_string']
matcher=re.search((?P[a-zA-Z]{3}\d{4}))
所需的字符串=matcher.groupdict()['matched\u string']
所需\u字符串将是您所需的输出


有关
re
模块,请参阅:

您可以使用大括号
{}
精确匹配三个字母字符和四个数字字符:

>>> 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'
来自重新导入搜索的
>>
>>> 
>>>字符串='--@$_ABC1234-XX12X'
>>>匹配=搜索('[a-zA-Z]{3}\d{4}',字符串)
>>>匹配
>>>match.group(0)#使用此选项获取匹配的字符串。
“ABC1234”
正则表达式的解释:

  • [a-zA-Z]
    :匹配任何字母的大写和小写
  • {3}
    :正好三次。而且
  • \d
    :任何数字字符
  • {4}
    正好四次

如果现在需要字符串的精确坐标,则可以使用以下内容:

>>> var = "--@$_ABC1234-XX12X"
>>> newstring = var[5:12]
>>> newstring
'ABC1234'

python字符串有一个切片方法。

到目前为止有没有尝试过?通常不赞成在不尝试任何事情的情况下提问。因此,您想检查字符串
ABC1234
是否在原始字符串中?或者你想得到它前面的三个字符和后面的四个字符?我已经试过了,但还是没有成功。我想从原始字符串中准确地得到字符串ABC1234。非常感谢。我和regexThank没听懂,谢谢。但是我更喜欢搜索方法,字符串的位置应该是灵活的。