gpt4 book ai didi

Java - 获取两个 # # 符号之间的值时出现问题(匹配模式)

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

例如,我有一个具有值的字段

String a="Items:#1000#,#2000#";

为此,我开发了成功获取值 1000 和 2000 的逻辑。

Pattern p = Pattern.compile("\\#(.*?)\\#");
Matcher m = p.matcher(a);

while(m.find()){
System.out.println(m.group(1));
}

一切正常!!!

但是我对一些值有疑问,这些值不应只考虑一个 # 符号和后面的两个 ## 符号。例如:

 String a="Items:#1 #1000#,#2000#";

这个值1不应该被考虑!!!但我的代码在这种情况下返回 1, 这不好,它应该再次返回 10002000

是否有可能以某种方式忽略仅用一个 # 的值?不幸的是,我有很多值在双 ## 符号之前有一个 #?值始终用 ##coma

分隔

最佳答案

以下模式仅匹配由 # 包围并后跟逗号或字符串末尾的字符串:

Pattern p = Pattern.compile("#([^#]*)#(?=(,|$))");

如果您还希望匹配换行符等字符,则可以在最后的括号中添加更多字符(在 ?= 之后)。

我没有在 Java 中测试它,仅在 Notepad++ 中测试,但两者都使用相同的正则表达式算法。

关于Java - 获取两个 # # 符号之间的值时出现问题(匹配模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426464/

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