使用正则表达式

时间:2016-01-23 09:30:30

标签: regex

我有一个字符串,其中有几个“\\”,其中一些我想选择使用正则表达式删除,其他不是。更确切地说,我想删除[...]内的所有“\\”,以便字符串

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 ..“?通常在“\\”之前和之后可能有任何符号,主要的不同之处在于我只想选择那些不在括号内的符号。

2 个答案:

答案 0 :(得分:1)

这需要在外观中使用量词(*+)来排除\[[^]]*之类的模式(这意味着它具有前左方括号,后跟除右方之外的任意数量的字符但是,观察背后的量词是不可能的。

所以也许你可以注意到你的字符串中有不同的模式 - 例如,如果这些/对永远不会跟空格和数字,而括号中的那些仍然是,你可以使用这个:

\\{2}(?!\s\d)

Demo here

答案 1 :(得分:0)

你可以用这个:

(?<=\])( \\{2} )(?=\[)?|((?<=\])?( \\{2} )(?=\[))