我正在用java编写正则表达式,但在运行程序时出错。
private final static Pattern QUOTE_VALUE = Pattern.compile("[_]?([a-zA-Z0-9_]+)=(\"[^]*\"),");
// Then later on down the road......
Macher m = QUOTE_VALUE.matcher(myString);
while (m.find()){
System.out.println("Found " + m.group(1) + " " + m.group(2));
}
我想让我的正则表达式与这些示例值匹配。
_MyKey="ID IN [ "ABC" ]", // Note - it has a comma after the ]
_MyKey="ID IN [ ""XYZ"" ]", // Note - it has a comma after the ]
我用在线regex助手尝试了它,我的regex实际上工作得很好。但当我在中运行程序时,会出现以下错误:
Caused by: java.util.regex.PatternSyntaxException: Unclosed character class near index 28
[_]?([a-zA-Z0-9_]+)=("[^]*"),
另一个问题是,如何格式化正则表达式,以便也可以将其与此字符串匹配?
MyKey="ID IN [ "ABC" ]", // without the _
_MyKey="ID IN [ "ABC" ]", // with the _
谢谢
[编辑]
你能帮我回答这部分问题吗?
另一个问题是,如何格式化正则表达式,以便也可以将其与此字符串匹配?
MyKey="ID IN["ABC" ]", // 没有__MyKey="ID IN["ABC" ]", // _
这部分:
[^]
需要
[\\^]*
如果要查找零或hat字符序列。(请注意,第一个反斜杠是为了告诉Java字符串解析器第二个反斜杠需要保留在字符串中。最终结果是正则表达式解析器只看到一个反斜杠,并使用它来表示帽子字符需要是由方括号标识的字符类的一部分。)
或者您缺少了一些您不想要的东西,例如:
[^b]*
匹配零个或多个非b字符
考虑到您想要匹配的内容,请尝试,或者只是
如果您确实需要跨行匹配,请使用.*
并将? s
放在正则表达式的前面,以强制java正则表达式匹配器进入允许点匹配包括换行符在内的所有字符的模式。
感谢@TimPietzcker提供的javascript注释。这表明在线工具不是Java正则表达式检查器,而是javascript正则表达式检查器。
我收到上述代码的此类异常:
这是我在专有名词周围查找相邻单词的代码。我收到下面提到的这段代码的错误。我尝试添加不同的排列和反斜杠和结束括号的组合,但仍然收到错误。将感谢帮助。 我得到的错误是: 线程“main”java中出现异常。util。正则表达式。PatternSyntaxException: 索引44附近的未关闭字符类([^\s]\s[^\s])\s[]\s([^\s]\s[^\s])\s 句子-Cyprium Min
索引12附近的未闭合字符类\b]([^。(|[]))^ 上面的正则表达式工作得很好,但是它在java上不工作,我无法检测出导致它的问题是什么。 有人能帮帮我吗? 提前感谢
当我在Eclipse IDE中打开Cucumber编辑器时,我收到以下错误- 我在之前的一次执行中收到此错误,因为我的步骤定义文件中有一个错误。我已经修复了这个问题,当我再次尝试打开功能文件时,我收到了这个错误。有人能帮我解决这个问题吗。已附加功能文件和程序。即使重新运行也不起作用。 代码 打开功能文件时Eclipse IDE出错截图:Eclipse中Cucumber编辑器错误
我试图在Java中使用这个正则表达式 ,以获取SQL中的表,我得到以下错误: 我找不到错误。 提前感谢您的帮助
我正在尝试替换字符串中的所有方括号。 这是我的节目 但我正在 有谁能告诉我如何更换所有方括号吗??