given text = "ABC123XYZ"
如何使用ABC
从python中的文本中提取regex
?
指导我实现目标的正确方法。
答案 0 :(得分:1)
>>> import re
>>> re.search(r"[a-zA-Z]*", "ABC123XYZ").group()
'ABC'
或者使用re.IGNORECASE
- 标志来获得更清晰的定义。
>>> re.search(r"[a-z]*", a, re.IGNORECASE).group()
'ABC'
答案 1 :(得分:1)
您可以使用正则表达式,或takewhile
:
>>> import re
>>> exp = r'(.*?)\d+.*?$'
>>> re.findall(exp, 'dafadfader343dvdfdfd3343fdfd')
['dafadfader']
根据您对文本的了解,这是另一种解决方案:
>>> from itertools import takewhile
>>> ''.join(takewhile(lambda x: not x.isdigit(), 'adfdafdaf343afdadffad'))
'adfdafdaf'
答案 2 :(得分:0)
您可以使用正则表达式以多种方式获取字母ABC。
>>> import re
>>> str = "ABC123XYZ"
使用否定(非字符类),
>>> re.search(r'^[^\d]*', str)
>>> m.group()
'ABC'
使用前瞻
>>> m = re.search(r'^.*(?=123)', str)
>>> m.group()
'ABC'
>>> m = re.search(r'^.*(?=\d{3})', str)
>>> m.group()
'ABC'
使用lookbehind,
>>> m = re.search(r'(?<=^)[A-Z]*', str)
>>> m.group()
'ABC'
使用Character class
>>> m = re.search(r'^[A-Z]*', str)
>>> m.group()
'ABC'