Python/Java:如何反转字符串单词而不是特殊字符

Python/Java: How to Reverse a String Words but not special characters

我有一个包含特殊字符的输入字符串: input="the: 天空是晴天" 预期输出=“晴天:是天空”

需要反转字符串单词但保留字符串中的特殊字符。

我做了简单的字符串反转,但是没有保留特殊字符:( 请帮助如何做到这一点?提前致谢。

使用re:

s1 = 'the: sky is sunny'
fmt = re.sub(r'\w+', '{}', s1)
s2 = fmt.format(*reversed(re.findall(r'\w+', s1)))
>>> s2
'sunny: is sky the'

正则表达式:\w+

\w:匹配任意单词字符(相当于[a-zA-Z0-9_])

+:匹配前一个token,次数在1次到无限次之间,尽可能多次,按需回馈(贪心)

来源:https://regex101.com/