正则表达式麻烦正则表达式

时间:2017-01-17 23:51:23

标签: regex

我在使用正则表达式时遇到了麻烦。我基本上想删除括号以外的所有内容,包括0,1,2,3,4,5,6,7,8,9,+, - ,*,/

一个例子是

(9*[3*{[(3+3)/5]*7}]) # should give the answer ([{[()]}])

我现在的正则表达式是

[0123456789+-\\*/] # and it gives the answer ({()]}])

除了[之外,我给出了正确的答案与正则表达式相匹配,我也不想要它。但是]不匹配,所以我很困惑。

2 个答案:

答案 0 :(得分:3)

@HamZa在评论using the negative char ^

中提供的最简单的解决方案
[^][(){}]

另一个解决方案是将-字符移动到正则表达式的开头或结尾,因为当前位置正在处理范围字符,就像在A-Za-z

中一样
[0123456789+\\*/-]

http://www.regexpal.com/?fam=96675

中查看

答案 1 :(得分:1)

将posix表达式用于"任何非括号":

myHttp.call

并将其替换为空白

  • [^\p{Ps}\p{Pe}] \p{Ps}:任何类型的开幕式。
  • \p{Open_Punctuation}\p{Pe}:任何类型的结束括号。