You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则捕获由一致符号分隔字母组成的单词?

解决方法

要捕获分隔符完全一致的这类单词,核心是先捕获第一个分隔符,强制后续所有分隔符和它相同。可以通过正则的捕获组反向引用来实现:

正则逻辑拆解

  • \b:匹配单词边界,确保我们匹配的是独立的单词片段
  • \w:匹配第一个字母
  • (\W):捕获第一个分隔符(非单词字符,涵盖空格、点、emoji等)到组1
  • (?:\w\1)+:非捕获组,重复匹配「字母+组1的分隔符」至少一次,保证后续分隔符和第一个完全一致
  • \w:匹配最后一个字母
  • \b:再次匹配单词边界,避免多余字符

代码实现

import re

x = "This is s u p e r and s.u.p.e.r and s👌u👌p👌e👌r and s!u.p!e.r"

# 正则模式:用捕获组记住第一个分隔符,后续强制匹配相同分隔符
pattern = r'\b(\w(\W)(?:\w\2)+\w)\b'
matches = re.findall(pattern, x)
# 提取完整匹配的结果(忽略捕获的分隔符)
result = [match[0] for match in matches]

print(result)
# 输出:['s u p e r', 's.u.p.e.r', 's👌u👌p👌e👌r']

为什么能排除不符合的项

对于s!u.p!e.r,第一个分隔符是!(被捕获到组2),但第二个分隔符是.,和组2的内容不匹配,因此整个片段不会被正则匹配到,自然被排除。

内容的提问来源于stack exchange,提问作者Billy Bonaros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:45:01