2017-04-19 236 views
0

我想创建一个正则表达式来排除字符串的第一部分(高亮显示)(WASH HANDLING PLANT将被排除在外)。正则表达式用于排除字符串开头的字

WASH HANDLING PLANTPRODUCT CONVEYOR TAIL END GUARDING

当正则表达式运行,其结果是:

HANDLING植物产品CONVEYOR尾端护卫。

任何人都可以请告诉我如何让正则表达式工作?

谢谢。

var re = new RegExp(/\b(?!WASH\sHANDLING\s[A-z ]{1,3})\b[-A-z0-9 ]{2,90}/); 
+0

重复这三次字符串是否有固定的格式?尝试'if(s.slice(0,19)===“WASH HANDLING PLANT”){console.log(s.slice(20)); }'。或者'PLANT'是任何单词和'WASH HANDLING'都是“硬编码”?然后尝试'/^WASH\s+HANDLING\s+\w+\s*([\s\S]*)/.exec(s) [1]'。 –

+0

您能否澄清要求?第一部分究竟是什么?如果它是三个单词,'input.replace(/ ^(\ w + \ s +){3} /,“”)'会完成这项工作。如果它恰好是''WASH HANDLING PLANT'',那么正则表达式更加直接。 –

+1

小心,'[A-Z]'不符合你的想法。用'/ i'修饰符使用'[A-Za-z]'或'[A-Z]'。 –

回答

0

如果它的字面意思是需要去除,然后这个表达式将提供一个匹配

/^(WASH HANDLING PLANT)/ 

要删除的话里话“请于操作PLANT”使用字符串替换功能,像下面的JavaScript例子.. 。

mystring.replace(/^(WASH HANDLING PLANT)/, ""); 

如果它更复杂,你需要删除的第三个字,无论那么这应该为你工作...

/^(\w+\s){3}/ 

,并再次使用Javascript替换...

mystring.replace(/^(\w+\s){3}/, ""); 

要解释什么在第二个事情......

^匹配字符串的开始。 ()表示要匹配的单词或字符组(我们在此仅匹配一个组),\w匹配任何单词,并且\s匹配空格。我们用{3}

+0

第一次更换会从“PRODUCT CONVEYOR尾部防护清洗处理工厂”的末端剥离“清洗处理工厂”,从而打破“排除第一部分绳索”的要求。 –

+0

好点@DmitryEgorov。修复! –

相关问题