Regex 正则表达式中的方括号问题
我的正则表达式有问题。我基本上想删除除括号以外的所有内容,包括0,1,2,3,4,5,6,7,8,9,+,-,*/ 例如Regex 正则表达式中的方括号问题,regex,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 ({()]}]) 这给了我正确的答案,除了[与正则表达式匹配,我也不想要它。但是]不匹配,所以我感到困惑。在注释中提供了最简单的解决方案 另一种解
(9*[3*{[(3+3)/5]*7}]) # should give the answer ([{[()]}])
我现在的正则表达式是
[0123456789+-\\*/] # and it gives the answer ({()]}])
这给了我正确的答案,除了
[
与正则表达式匹配,我也不想要它。但是]
不匹配,所以我感到困惑。在注释中提供了最简单的解决方案
另一种解决方案是将-
字符移动到正则表达式的开头或结尾,因为在当前位置被视为范围字符,就像a-Za-z
[0123456789+\\*/-]
在中将posix表达式用于“任何非括号”: 并将其替换为空白
或\p{Ps}
:任何类型的开头括号\p{Open\u标点符号}
或\p{Pe}
:任何类型的结束括号\p{Close\u标点符号}
-
也可以是字符类开头的字符。
[0123456789+\\*/-]
[^\p{Ps}\p{Pe}]