如何查找非字母数字字符并将其移动到Python中字符串的末尾

Cod*_*ddy 2 python regex find

我有以下字符串:

"string.isnotimportant"
Run Code Online (Sandbox Code Playgroud)

我想找到点(它可以是任何非字母数字字符),并将其移动到字符串的末尾.

结果应如下所示:

"stringisnotimportant."
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个正则表达式来完成这项工作.

Gar*_*ler 5

import re
inp = "string.isnotimportant"
re.sub('(\w*)(\W+)(\w*)', '\\1\\3\\2', inp)
Run Code Online (Sandbox Code Playgroud)

  • 当然.第二个位是`\ 1\3\2`,它们是对前3个捕获组的反向引用,但反斜杠必须被转义(或者你可以使用带有'r'\ 1\2\3'的原始字符串).这与Totem的正则表达式非常相似 - 它将0个或多个单词字符与`\ w*`匹配,然后将1个或多个非单词字符与`\ W +`匹配,然后再匹配第一个.`()`捕获这3个部分中的每一部分.`\ 1\3\2`只是重新排序3个部分以放置中间部分,其末尾是非单词字符. (2认同)