Javascript正则表达式,用于匹配忽略4位数字的数字字

Javascript正则表达式,用于匹配忽略4位数字的数字字,javascript,regex,Javascript,Regex,我有一个字符串,它只是一个单词,中间只有一个空格。假设没有特殊字符,我想匹配所有包含数字的单词,而忽略4位数字 即 你好12345 12345你好123456789 12红色你好1234 5678 将匹配: hello1234512345hello 123456789 12 最终目标是用空字符串替换hello12345 12345 hello 123456789 12,结果是: red hello 1234 5678 下面的\w*\d\w*将单词与数字匹配 和\b\d{4}\b匹配所有4位数字。

我有一个字符串,它只是一个单词,中间只有一个空格。假设没有特殊字符,我想匹配所有包含数字的单词,而忽略4位数字

你好12345 12345你好123456789 12红色你好1234 5678

将匹配:

hello1234512345hello 123456789 12

最终目标是用空字符串替换
hello12345 12345 hello 123456789 12
,结果是:

red hello 1234 5678

下面的
\w*\d\w*
将单词与数字匹配 和
\b\d{4}\b
匹配所有4位数字。 但是,我不确定如何组合它们。

匹配并捕获您需要的内容,然后只匹配您不需要的内容(请参阅):

var re=/\b\d{4}\b|(\w*\d\w*)/g;
var str=“hello12345 12345你好123456789 12红色你好1234 5678”;
var m,res=[];
while(m=re.exec(str)){
if(m[1])res.push(m[1]);
}
控制台日志(res)此正则表达式

/((\b(\d{1,3}|\d{5,})\b)|([a-z]+\d\w*|\w*\d[a-z]+))\s*/gi
匹配项:

// Digit-only words with less than or more than 4 digits
\b(\d{1,3}|\d{5,})\b

// Words that contain at least a number and a letter
[a-z]+\d\w*|\w*\d[a-z]+
包括它们之间的空白

var string=“hello12345 12345你好123456789 12红色你好1234 5678”;
var regex=/(\b(\d{1,3}|\d{5,})\b)|([a-z]+\d\w*|\w*\d[a-z]+)\s*/gi

console.log(string.replace(regex)(“”))
\d{1,3}\b
?…捕获您需要的内容并匹配您不需要的内容-收集第1组(如果您需要提取)。@WiktorStribiżew我对regex还是很陌生。您能解释一下您的意思吗?@YAnderson,现在清楚了吗?是的!谢谢你,再看一眼我就明白了@YANDSON,如果它对你有用,请考虑接受。如果你觉得它有帮助,请考虑投票。如果您需要此解决方案的任何帮助,请发表评论,我很乐意澄清。