Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过正则表达式匹配括号和括号内的数字_Java_Regex - Fatal编程技术网

Java 如何通过正则表达式匹配括号和括号内的数字

Java 如何通过正则表达式匹配括号和括号内的数字,java,regex,Java,Regex,我想匹配数字小数点和括号,可能在那里,也可能不在那里。 例如,不同的模式可以是: 233.44 264.00 23456.345 (2678.200) 我希望输出作为它的输出,而不删除可选的括号。我写的正则表达式只检查数字和小数点,不检查括号 \d+(\.\d{1,2})? 任何关于如何包含括号的线索都会在这里有所帮助。假设我理解您的问题,并希望在您的模式中添加(和),作为可选选项,我想在java中这样做。大概 String re = "\\(*\\d+(\\.\\d+)?\\)*"; St

我想匹配数字小数点和括号,可能在那里,也可能不在那里。 例如,不同的模式可以是:

233.44
264.00
23456.345
(2678.200)
我希望输出作为它的输出,而不删除可选的括号。我写的正则表达式只检查数字和小数点,不检查括号

\d+(\.\d{1,2})?

任何关于如何包含括号的线索都会在这里有所帮助。假设我理解您的问题,并希望在您的模式中添加
,作为可选选项,我想在java中这样做。大概

String re = "\\(*\\d+(\\.\\d+)?\\)*";
String[] arr = { "233.44", "264.00", "23456.345", "(2678.200)" };
for (String s : arr) {
    System.out.println(s.matches(re));
}
哪个输出

true
true
true
true

假设我理解您的问题,并且希望在您的模式中添加
作为可选项。大概

String re = "\\(*\\d+(\\.\\d+)?\\)*";
String[] arr = { "233.44", "264.00", "23456.345", "(2678.200)" };
for (String s : arr) {
    System.out.println(s.matches(re));
}
哪个输出

true
true
true
true

我在javaregex在线编译器中测试了这个模式,我看到了悬空的元字符这就是我测试@Rajesh的地方,当用Java
字符串编写时,你必须将
\
写成
\
。在正则表达式测试仪中使用
\(*\d+(\.\d+)*
,用于相同的正则表达式。谢谢@Elliott,它可以工作。现在,在您的帮助下,我将我的正则表达式也改为处理逗号((?:\d+)(\d)*([\,\]\d])(\.\d+)*您似乎在
前面掉了一个
\
,后面掉了一个
*
(*\d+(\.\d{1,2})*
应该可以工作。但是,很高兴我能帮上忙。我在javaregex在线编译器中测试了这个模式,我看到了悬空的元字符。这就是我测试@Rajesh的地方,当用Java
字符串编写时,你必须以
\
的形式编写
\
。使用
\(*\d+(\.\d+)?)*
在你的正则表达式测试仪中使用相同的正则表达式。谢谢@Elliott,它可以工作。现在我在你的帮助下把我的正则表达式也改成了逗号((?:\d+(\,\]\d))(\。\d+)*你好像在
之前掉了一个
\
在它之后又掉了一个
*
\(*\d+(\.\d{1,2})\)*
应该可以工作。但是,很高兴我能帮上忙。