gpt4 book ai didi

java - 在 Java RegEx 中捕获点和逗号

转载 作者:行者123 更新时间:2023-12-01 15:38:37 25 4
gpt4 key购买 nike

我有以下 Java 代码:

Pattern fieldsPattern = Pattern.compile("(\"([^\"]+)\")|"
+"("+this.field_tag+"([0-9a-zA-Z_]+))");
Matcher fieldsMatcher = fieldsPattern.matcher(field);
while(fieldsMatcher.find())
{
//...
}

此代码应捕获诸如“表达式”和:表达式之类的表达式(field_tag 只是“:”)。当我 try catch “10.1”或“10,1”这样的表达式时,就会出现问题。这不起作用。

但是表达式:

"10-1",
"10+1"

按预期工作。

我还尝试在 regexpal.com 上使用此正则表达式 - 具有 RegExp 的 javascript 实现的站点。在此网站上,“10.1”和“10,1”等表达式可以正常工作。

java和javascript在捕获点方面有什么区别吗?我做错了什么?

最佳答案

这对我有用

Pattern fieldsPattern = Pattern.compile("(\"[^\"]+\")");
String field =" aa \"10\" \"10.1\" and \"10,1\"";
Matcher fieldsMatcher = fieldsPattern.matcher(field);
while(fieldsMatcher.find()) {
System.out.println(fieldsMatcher.group());
}

打印

"10"
"10.1"
"10,1"

正则表达式中的第二组括号似乎是多余的,但无害。

关于java - 在 Java RegEx 中捕获点和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com