Regex替换一个单词前最多4位数字

Regex替换一个单词前最多4位数字,regex,google-chrome-extension,replace,numeric,regex-lookarounds,Regex,Google Chrome Extension,Replace,Numeric,Regex Lookarounds,我正在为chrome使用这个扩展(它被称为Word Replacer II),我正在尝试创建一个正则表达式find and replace 快速的背景故事,我的搭档正在从饮食失调中恢复,我想找到所有提到的千焦耳和KJ,并用 我对Regex完全陌生,几个小时后,我就不太可能得到一个工作表达式了 我需要它删除最多4个字母“kJs”前的数字。例如,400kJs和1000kJs。我希望将“400kJs和1000kJs”替换为“[removed kJs]和[removed kJs]” 到目前为止,我编写的

我正在为chrome使用这个扩展(它被称为Word Replacer II),我正在尝试创建一个正则表达式find and replace

快速的背景故事,我的搭档正在从饮食失调中恢复,我想找到所有提到的千焦耳和KJ,并用

我对Regex完全陌生,几个小时后,我就不太可能得到一个工作表达式了

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

到目前为止,我编写的代码是:

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

\s+(a{1,4}您可以使用以下方法:

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

如果需要保留
kJs
,可以使用一个向前看的
\d{1,4}(?=\s*kJs\b)
来包装模式的右侧部分

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

\b\d{1,4}\s*kJs\b
(?<!\d)\d{1,4}\s*kJs\b
\b\d{1,4}\s*kJs\b
(?
也就是说,添加单词边界
\b
,或左侧数字边界
(?)

图案细节

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

    • 你的意思是
      \d{1,4}(?=\s*kJs\b)
      ?还是
      \d{1,4}\s*kJs\b
      。您的要求和您的示例有些矛盾。我只是从帖子正文推断匹配项被替换为空字符串。如果有十进制值会怎么样。
      200.23Kjs
      ?抱歉,我将替换为字符串,但正文格式去掉了它!我现在就编辑。这非常有效!到底是什么我需要,非常感谢Wiktor!