regexp = re.compile('[A-Z]\\d{4}')
prefix = regexp.match("\"O1533_FOO\" INTEGER NOT NULL ,")
前缀是无,但我希望它是" O1533"。
当我使用基于网络的工具http://regexr.com/时,它可以正常工作。
我尝试使用不同数量的\
来逃避\
,我也尝试分隔/
s。无法让它发挥作用。
请问一些RegExp专家可以修复我的表达吗?
答案 0 :(得分:5)
因为您应该将match
替换为search
。
match
尝试从头开始匹配字符串,\"O1533_FOO\" INTEGER NOT NULL ,
不会以匹配[A-Z]
的内容开头,因此会失败。
Python基于正则表达式提供两种不同的基本操作:
re.match()
仅在字符串的开头检查匹配,而re.search()
检查匹配字符串中的任何位置(这是Perl默认执行的操作)。