2024-04-20 13:08:22 发布
网友
我想匹配街道名称,可以是“St/Ave/Road”的形式。后缀可能根本不存在,所以可能只是“第一个”。我还想知道后缀是什么。什么是适合它的正则表达式?我试过了:
(.+)(\s+(St|Ave|Road))?
但第一组似乎贪婪地匹配整个字符串。我试着回顾一下(?<!),但无法使其正常工作,因为它不断地出现诸如“look-behind requires fixed-width pattern”之类的错误。在
?<!
look-behind requires fixed-width pattern
如果有关系的话,我使用Python。在
有什么建议吗?在
作为基于regex的解决方案的替代方案,如何:
suffix = s.split(' ')[-1] if suffix in ('St', 'Ave', 'Road'): print 'suffix is', suffix else: print 'no suffix'
如果必须使用正则表达式,只需将第一个匹配设置为非贪心的,如:r'.*?\s+(St|Ave|Road)$'
r'.*?\s+(St|Ave|Road)$'
只需添加一个问号,使您的第一组不贪婪:
(.+?)(\s+(St|Ave|Road))?
你想要消极的展望
(?!(St|Ave|Road))$
作为基于regex的解决方案的替代方案,如何:
如果必须使用正则表达式,只需将第一个匹配设置为非贪心的,如:
^{pr2}$r'.*?\s+(St|Ave|Road)$'
只需添加一个问号,使您的第一组不贪婪:
你想要消极的展望
相关问题 更多 >
编程相关推荐