我有一个字符串,其中有几个“\\”,其中一些我想选择使用正则表达式删除,其他不是。更确切地说,我想删除[...]内的所有“\\”,以便字符串
var string1 = "[1 & 2 \\ 1 & 2] \\ [1 & 2 \\ 1 & 2 ]";
var string2 = "a{b}_{c} \\ [1 & 2 \\ 1 & 2 \\ 1 & 2 ]";
var string3 = "[1 & 2 \\ 1 & 2 \\ 1 & 2 ] \\ \text{foo}";
是否有一个正则表达式选择字符串1中的“..”\\ [..“中的”\\“,字符串2中的”..} \\ [..“和”..“\\ \ te ..“?通常在“\\”之前和之后可能有任何符号,主要的不同之处在于我只想选择那些不在括号内的符号。
答案 0 :(得分:1)
这需要在外观中使用量词(*
,+
)来排除\[[^]]*
之类的模式(这意味着它具有前左方括号,后跟除右方之外的任意数量的字符但是,观察背后的量词是不可能的。
所以也许你可以注意到你的字符串中有不同的模式 - 例如,如果这些/
对永远不会跟空格和数字,而括号中的那些仍然是,你可以使用这个:
\\{2}(?!\s\d)
答案 1 :(得分:0)
你可以用这个:
(?<=\])( \\{2} )(?=\[)?|((?<=\])?( \\{2} )(?=\[))