我想只在第二个字符串中匹配大写字母
dashed-String-With-Uppercase
camesCaseString
我已经尝试了这个(?<!-)([A-Z])
,但负面的后视在javascript中不起作用。可以用另一种方式解决吗?
答案 0 :(得分:3)
cupsenable
你可以使用它并抓住小组。
答案 1 :(得分:3)
您可以使用否定的字符类,并检查字符串的开头是否为
(^|[^-])([A-Z])
请参阅regex demo
然后,您可以使用$1
反向引用来恢复大写字母前面的部分。
这是一个演示,演示如何在大写字母之前插入连字符,这些字母不是带有连字符的alreaydy:
var re = /(^|[^-])([A-Z])/g;
var str = 'dashed-String-With-Uppercase\ncamesCaseString';
var result = str.replace(re, "$1-$2");
document.write(result.replace(/\n/g, "<br/>"));
&#13;