正则表达式最多可替换单词前的 4 位数字

Regex to replace up to 4 digits before a word

我正在为 chrome 使用此扩展(它称为 Word Replacer II),我正在尝试创建一个 Regex 查找和替换。

快速背景故事,我的伙伴正在从饮食失调中恢复过来,我想找到所有提及千焦耳和 kJs 的内容并将它们替换为 .

我对 Regex 完全陌生,几个小时后,我离获得一个有效的表达式并没有多远。

我需要它最多删除字母“kJs”前的 4 位数字。例如,400kJs 和 1000kJs。我希望将“400kJs 和 1000kJs”替换为“[removed kJs] 和 [removed kJs]”。

到目前为止我整理的代码是;

\s+(a{1,4}<=\d)\s+(?=kJ)

非常感谢您的帮助!

您可以使用以下方法:

\d{1,4}\s*kJs\b

regex demo

如果您需要保留 kJs,您可以将模式的右侧部分用前瞻性包装起来,\d{1,4}(?=\s*kJs\b)

如果您不想触摸 5 位或更多数字,请使用

\b\d{1,4}\s*kJs\b
(?<!\d)\d{1,4}\s*kJs\b

即添加一个单词边界,\b,或一个左侧数字边界,(?<!\d)

图案详情

  • \d{1,4} - 一到四位数
  • \s* - 0+ 个空格
  • kJs - 一串字母
  • \b - 单词边界(如果没有以 kJs 开头的单词,则可能没有必要)。