我写了一个RegEx来替换,
#aa with #abcd
.aa with .abcd
#aa> with #abcd>
#aa{ with #abcd{
#aa+ with #abcd+
#aa { with #abcd {
#aa{ with #abcd{
但是
#aaa{
不应替换为#abcd{
我在javascript中使用以下正则表达式,
"test#aaa{".replace(/(#|.)aa(\s|\+|\.|>|,|{)/g, "$1abcd$2")
理想情况下,我的用例是,使用CSS ID/CLASS
替换cssfileConents中的new ID/CLASS
var cssContent = "test#aaa{";
var exp = "(#|.)" + oldIdValue + "(\\s|\\+|\\.|>|,|{)";
var regEx = new RegExp(exp, "g");
cssContent.replace(regEx, "$1" + newvalue + "$2");
原谅我的格式:)
答案 0 :(得分:1)
您可以使用:
var repl = string.replace(/(#|.)\baa\b(\s|\+|\.|>|,|{)/g, "$1abcd$2");
答案 1 :(得分:0)
试试这个:
"test#aaa{".replace(/([#.])aa(?![a-zA-Z])/g, "$1abcd");
在角色类[]
内,.
表示仅点角色。但在[]
之外,.
表示任何非空格字符(您现在正在使用)。
(?![a-zA-Z])
是负面的预测。无论如何,检查下一个字符是否在a
到z
之间。
答案 2 :(得分:0)
使用此正则表达式
([^a])aa([^a])
在你的控制台中试试
var res = "test#aa{".replace(/([^a])aa([^a])/g, "$1abcd$2");
console.log(res);
演示: