我使用regex101进行表达,使用其符号看起来像这样
\d+ [+-\/*] \d*
基本上,我希望用户像123 + 123
一样输入,但是整个语句是一个字符串,在第一个数字后正好有一个空格,在运算符后又有一个空格
上面的表达式有效,但是不能将其转换为Java。
我认为这些符号是通用的,但我猜不是。有什么想法可以将其转换为正确的语法吗?
答案 0 :(得分:3)
正则表达式不是通用的。 一般来说, 没有两个正则表达式系统是相同的。
Java没有正则表达式。
一些Java类支持正则表达式。
Pattern类定义了某些Java类所使用的正则表达式,其中包括Matcher
似乎是您正在使用的类。
正如评论中已经指出的那样,
\
是Java中的下一个转义字符。
如果要在字符串中表示\
,
您必须使用\\
。
例如,
正则表达式中的\d
必须用Java字符串写成\\d
。
答案 1 :(得分:1)
您可以简单地使用组()并根据需要设计RegEx。 This RegEx可能是这样做的一种方式:
((\d+\s)(\+|\-)(\s\d+))
它有四个组,您可以简单地使用 $ 1 调用整个输入:
您还可以转义 \ 那些必需的基于语言的chars。