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