如何使用正则表达式选择具有特殊字符的行文本

时间:2014-10-15 09:14:16

标签: regex

输入:

1.\frac{[a+b]}{xjch}

2.\frac{pqz}{xjch}

通缉输出

1.[a+b]/(xjch)

2.(pqz)/(xjch)

我的正则表达式是:

\\frac\{(.{2,})\}\{(.{2,})\}

如果我应用此正则表达式, 输出将是,

1.([a+b])/(xjch)

2.(pqz)/(xjch)

但我不希望()中有[a+b]。即如果{...}内有任何特殊字符,圆括号不应该来。否则,(没有特殊字符),圆括号应该像(pqz)(xjch)

我想要两个正则表达式1.和2.然后只有我会得到想要的输出。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以在括号内写一个 ,并用条件替换第1组和第2组

Regex

这个正则表达式是

if(nextchar == "[") 
    TypeOfYourInstuction = 1; 
else 
    TypeOfYourInstuction = 2;` 

http://regex101.com/r/dN8sA5/18

但是正如你提到的那样,你可以为第一种类型和第二种类型编写两个正则表达式:

\\frac\{\[?([a-zA-Z1-9\+]{2,})\]?\}\{\[?([a-zA-Z1-9\+]{2,})\]?\}

你必须用括号

替换第二种类型