我有两个正则表达式.net preRegex ="(?< =(^ | [^ A-Za-z0-9] +))" postRegex ="(?=([^ A-Za-z0-9] +)| $)" 。它在python中的替代品是什么?

时间:2017-12-07 06:51:34

标签: regex python-3.x python-2.7

我在.net

中有两个正则表达式字符串
preRegex = "(?<=(^|[^A-Za-z0-9]+))"
postRegex = "(?=([^A-Za-z0-9]+)|$)"

我想在python中使用他们的替代品。我的问题是让我说我​​有一个字符串

s="I am in aeroplane."

我需要的是用aeroPlain&#34;替换飞机。所以我想制作正则表达式

newKey = preRegex + aeroplane + postRegex
pattern = re.compile(newKey,re.IGNORECASE)

新的正则表达式字符串看起来像

(?<=(^|[^A-Za-z0-9]+))aeroplane(?=([^A-Za-z0-9]+)|$)

但它给了我错误&#34;后视需要固定宽度模式&#34;。 我是python的新手,帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式:

(^|[^A-Za-z0-9]+)aeroplane([^A-Za-z0-9]+|$)

当您更换时,可以将后退参考调用到正则表达式的第一部分和第二部分以获取其值。

替换字符串将类似于'\1aeroPlain\2'。 有关python中backref的更多信息:https://docs.python.org/3/howto/regex.html

祝你好运!