import re
p = re.compile(r'(\b\w+)\s+\1')
a = p.search('Paris in the the spring').group() print(a) 代码如上,执行结果是:the the 在 Python3 中使用原始字符串写正则表达式,\b 在这里我的理解是“单词”边界,也就是 Paris in the the spring 的开头和结尾位置,\w 是匹配任意 Unicode 单词字符,+是执行至少一次\w,然后再是匹配空白字符(\s 的意思),+是执行至少一次\s,\1 是再一次执行前面的所有匹配。 这里我想问的是为什么是从 the 开始匹配,而不是从 Paris 开始。 如果是从 the 开始,那结果为什么不是 “ the 空格 the 空格” 即 “ the the ” 而是“ the 空格 the ” 即 “ the the ”
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.