gpt4 book ai didi

java - 如何在Java中使用正则表达式分割特殊字符

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

如果有以下字符串:
MAC 1 14美元,IPHONE4 1-2-3-4 22美元,44美元,66美元,88美元

然后我想生成以下输出:
1,1,2,3,4

我正在使用 (\\bUSD\\d{1,99})(\\bMAC)(\\bIPHONE\\d) 来拆分它,但它不起作用。

我应该做什么?

最佳答案

不要使用split() 。使用PatternMatcher提取字符串。会更容易。

public static void main(String[] args) {
String s = "MAC 1 USD14,IPHONE4 1-2-3-4 USD22,USD44,USD66,USD88<br>";
Pattern p = Pattern.compile("(?<=\\s|-)\\d(?=\\s|-)"); // extract a single digit preceeded and suceeded by either a space or a `-`
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}

}

输出:

1
1
2
3
4

注:Pattern.compile("\\b\\d\\b");也会给你同样的答案。

编辑:(?<=\\s|-)\\d(?=\\s|-)" :

(?<=\s|-) --> positive look-behind. Looks for a digit (\d) preceeded by either a space or a - (i.e, dash).

(?=\s|-) --> positive look-ahead. Looks for a digit (\d) followed by either a space or a - (i.e, dash).

请注意,后视/前视匹配但未捕获

关于java - 如何在Java中使用正则表达式分割特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29958314/

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