[英]Use Regex Replace to add a character at specific location in string
我有这样的字符串
Material TD Vandal High Supreme Signal Blue / University Red-B
我想添加连字符,因此最终字符串变为
Material TD Vandal High Supreme Signal - Blue / University Red-B
连字符应在第一个/
字符串可以有多个/
之前添加单词
我尝试了string.replace(/([A-Za-z][ ][/])/g, '-$1');
尝试了几件事,但没有任何效果。
当您说应该在第一个/
前面加上连字符时 ,问题是为什么要使用/g
修饰符? g
表示“全局”,它将尝试查找字符串中所有不重叠的正则表达式匹配项。 首先,您不需要该修饰符。
其次, [A-Za-z]
匹配单个字符。 由于正则表达式引擎从左到右匹配字符串,因此与该模式匹配的字母后应加一个空格和一个斜杠,因此它将匹配e /
而不是Blue /
。 要匹配整个单词,您需要在[A-Za-z]
之后添加+
量词。 如果您不在乎这些字符是字母还是数字(或_
),也可以只使用\\w
。 即使\\S+
,一个或多个非空白也可以使用。
为了使它接近原始,我建议:
var result = string.replace(/[A-Za-z]+\s+\//, "- $&");
参见regex演示 。
细节
[A-Za-z]+
-1个或多个ASCII字母 \\s+
-1+空格 \\/
-一个/
字符(因为在正则表达式文字中使用,所以已转义)。 替换模式中的$&
是指向整个匹配项的替换后向引用,无需用捕获组包装整个模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.