我有这个字符串:
'Is?"they'
我想在字符串中找到问号(?),并将其放在字符串的末尾。输出应如下所示:
'Is"they?'
我在python 2.7中使用以下正则表达式。我不知道为什么我的正则表达式不起作用。
import re
regs = re.sub('(\w*)(\?)(\w*)', '\\1\\3\\2', 'Is?"they')
print regs
Is?"they # this is the output of my regex.
答案 0 :(得分:3)
您的正则表达式不匹配,因为"
不在\w
字符类中。您需要将其更改为:
regs = re.sub('(\w*)(\?)([^"\w]*)', '\\1\\3\\2', 'Is?"they')
答案 1 :(得分:2)
如here所示,"
未捕获\w
。因此,最好只使用.
:
>>> import re
>>> re.sub("(.*)(\?)(.*)", r'\1\3\2', 'Is?"they')
'Is"they?'
>>>
.
捕获正则表达式中的所有内容(除了换行符)。
另外,您会注意到我使用raw-string作为re.sub
的第二个参数。这样做比使用所有反斜杠更清晰。