如何在字符串中查找特定字符并将其放在字符串的末尾

时间:2013-12-25 19:12:12

标签: python regex string

我有这个字符串:

'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.

2 个答案:

答案 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的第二个参数。这样做比使用所有反斜杠更清晰。