我处理正则表达式时,出现了这个问题。如何为数学表达式测试编写正则表达式。我的意思是这样的:
1+1
(1+1) * 2 / (4+1) + 3
像这样的东西。
我尝试这样的事情:
"^(?:\\d+([*+-]|/(?!0)))+\\d+$"
但是不能通过方括号将选项传递出去。如何制作一个跳过上述两个选项的正则表达式?我需要一个正则表达式来跳过数字,括号和基本数学运算+-* /和空格
答案 0 :(得分:1)
您可以使用以下内容:
^(?:\d+|\(\d+\s*[-+/*]\s*\d+\))(?:\s*[-+/*]\s*(?:\d+|\(\d+\s*[-+/*]\s*\d+\)))*$
(?:\d+|\(\d+\s*[-+/*]\s*\d+\))
是一个数字或带括号的操作。至少匹配一次,然后再根据需要由操作员分隔多个事件。