繁体   English   中英

正则表达式匹配一个字符的一个匹配项,同时匹配另一个字符的2个匹配项

[英]Regex match one occurrence of a character while matching 2 of another

如问题所述,我正在尝试匹配一个字符的一次出现,同时匹配另一个字符的两次出现。 例如,在字符串"_Hell_o"我想匹配第一个"_"对于"++Hello"我要完全匹配两个"+" 基本上是这样的功能:

function change(str){
    console.log(str.replace(/[_+{2}]/, ''));

change("++Hello");
change("_Hello");
change("+Hello");

和输出是

>>> Hello
>>> Hello
>>> +Hello

但是该功能不起作用

您可以使用两次替换来解决问题,例如:

 var array = ["++Hello", "_Hello", "+Hello"]; for (var i = 0; i < array.length; i++) { console.log(array[i].replace(/\\+{2}/, '').replace(/_(.*)/, '$1')) } 

/^_{1}|\\+{2}/g可以解决问题。

 function change(str){ console.log(str.replace(/^_{1}|\\+{2}/g, '')); } change("++Hello"); change("+++Hello"); change("_Hell__o"); change("___Hello"); change("+Hello"); 

str.replace('++', '').replace('_', '')

YCF_L的答案的简化版本。 就像YCF_L的答案一样,它将删除第一次出现的++ (如果有)和第一次出现的_ (如果有)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM