gpt4 book ai didi

Java regex.pattern 匹配器未返回所需的结果

转载 作者:太空宇宙 更新时间:2023-11-04 13:13:46 25 4
gpt4 key购买 nike

即使其他工具似乎匹配所需的模式,Java 正则表达式模式匹配似乎也没有返回所需的结果。如果正则表达式语法正确,那么我不理解 Java 正则表达式的实现吗?

假设一个参数字符串:

argList = -fbin -o program.asm -l listfile.lst

这是我的实现

 String argPattern = "/(-o\\s*\\S+)|(-f\\s*\\S+)|(-l\\s*\\S+)/g";
Pattern r = Pattern.compile(argPattern);
Matcher m = r.matcher(argList);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
}

该例程的输出仅返回

-fbin, null, fbin  

这没有意义吗?

最佳答案

您需要从正则表达式中删除分隔符和全局修饰符,Java 不使用此语法。另外,我将使用字符集,而不是三个组结构。

Pattern p = Pattern.compile("-[ofl]\\s*\\S+");
Matcher m = p.matcher(argList);
while (m.find()) {
System.out.println("Found value: " + m.group());
}

关于Java regex.pattern 匹配器未返回所需的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716000/

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