我是正则表达式的新手。我试图使用正则表达式获取括号内的内容
示例
7+(4*6)
---> (4*6)
(44/(2*( 1 + 3)))
----> ( 1 + 3)
(54-(23+12))
----> (23+12)
所以,我的预期输出以(
开头,后跟数字后跟空格(可能不是)后跟四个运算符中的任意一个(+, - ,*,/)后跟空格(可能不是)然后是)
。
提前致谢...
答案 0 :(得分:2)
您可以使用前瞻来获取最内部括号和附加文本。
这个正则表达式应该有效:
\((?=[^(]*$)[^)]*\)
<强>测试强>
'7+(4*6)'.match(/\((?=[^(]*$)[^)]*\)/);
//=> ["(4*6)"]
'(44/(2*( 1 + 3)))'.match(/\((?=[^(]*$)[^)]*\)/);
//=> ["( 1 + 3)"]
'(54-(23+12))'.match(/\((?=[^(]*$)[^)]*\)/);
//=> ["(23+12)"]
答案 1 :(得分:1)
试试这个:
\( *\d+ *[-+*/] *\d+ *\)
这意味着:
示例:
var regExp = /\( *\d+ *[-+*/] *\d+ *\)/;
"7+(4*6)".match(regExp)[0]; // "(4*6)"
"(44/(2*( 1 + 3)))".match(regExp)[0]; // "( 1 + 3)"
"(54-(23+12))".match(regExp)[0]; // "(23+12)"
答案 2 :(得分:0)
\.*(\([^()]*\))\.*
你最好的pal。
答案 3 :(得分:0)
尝试此变体
\((?!.*\().*?\)