Python 匹配a+;在正则表达式中
这应该很容易,但到目前为止,我已经在工作中设法说服了两个人&我已经做了3个多小时了,现在开始吧 我需要用aplus替换a+(以及其他一些情况),并使用pythonre模块。 例如,“我通过了a+考试。”需要变成“我通过了aplus考试” 仅使用\ba+在大多数情况下都很好,但在a+b的情况下失败,因此我无法使用它,它需要将a+作为一个不同的词匹配。我尝试了\ba+\b,但失败了,因为我假设+是单词边界 我还尝试了\ba+\W,它确实有效,但贪婪并占用了空间(或任何其他可能存在的非alpha字符)Python 匹配a+;在正则表达式中,python,regex,Python,Regex,这应该很容易,但到目前为止,我已经在工作中设法说服了两个人&我已经做了3个多小时了,现在开始吧 我需要用aplus替换a+(以及其他一些情况),并使用pythonre模块。 例如,“我通过了a+考试。”需要变成“我通过了aplus考试” 仅使用\ba+在大多数情况下都很好,但在a+b的情况下失败,因此我无法使用它,它需要将a+作为一个不同的词匹配。我尝试了\ba+\b,但失败了,因为我假设+是单词边界 我还尝试了\ba+\W,它确实有效,但贪婪并占用了空间(或任何其他可能存在的非alpha字符)
有什么建议吗?把这个
\W
变成一个断言
\ba\+(?=\W)
或者更好
\ba\+(?!\w)
因为否定断言也允许匹配字符串末尾的
a+
。您需要转义+,因为它在regexp中有特殊含义(一个或多个a)。
>>> re.sub(r'\ba\+\s', 'aplus ', 'I passed my a+ exam.')
'I passed my aplus exam.'
>>> re.sub(r'\ba\+\s', 'aplus ', 'a+b')
'a+b'
搜索
a\+
而不是a+
正则表达式上的更正:我是在转义+,只是键入了错误。所以它是\ba\+,\ba\+\b等等。这些信息属于问题,而不是评论。