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

如何用Python正则表达式及re.sub为句子中每个单词包裹标签?

解决方案:用正则为单词包裹标签

先搞懂\b的工作原理

\b 是正则里的单词边界,它匹配的是一个位置而非具体字符:

  • 当一侧是「单词字符」(\w,即字母、数字、下划线),另一侧是「非单词字符」(\W,比如标点、空格)或字符串的开头/结尾时,这个位置就会被\b匹配到。
  • 举个例子:在“Test, abc”里,Test末尾的t和逗号之间、空格和abc开头的a之间,都是\b匹配的位置。

实现代码

核心思路是用正则匹配每个完整单词,再将其替换为包裹标签的形式。以下是常见编程语言的实现:

Python 版本

import re
input_text = "Test, abc; text."
output_text = re.sub(r'\b(\w+)\b', r'<span>\1</span>', input_text)
print(output_text)
# 输出:<span>Test</span>, <span>abc</span>; <span>text</span>.

JavaScript 版本

const inputText = "Test, abc; text.";
const outputText = inputText.replace(/\b(\w+)\b/g, '<span>$1</span>');
console.log(outputText);
// 输出:<span>Test</span>, <span>abc</span>; <span>text</span>.

关键说明

  • \b(\w+)\b:两个\b确保匹配的是完整单词,(\w+)捕获一个或多个单词字符作为分组。
  • 替换时用<span>\1</span>(Python)或<span>$1</span>(JavaScript)将捕获的单词包裹,标点符号会保留在标签外,完全符合需求。

如果你的场景中单词包含连字符、撇号等特殊字符(比如“don't”“state-of-the-art”),可以调整正则为\b([\w'-]+)\b来兼容这类情况。

内容的提问来源于stack exchange,提问作者Paul R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:18:22