gpt4 book ai didi

java - 正则表达式向前将字符串分隔成标记

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

我目前有以下代码,它允许我从字符串中查找匹配项。

我需要能够找到与 64x 类似的所有单词并将它们拆分为标记,因此我将得到 64x > 作为输出。

我已经查看了正则表达式前瞻,但这并不能解决问题,有没有办法做到这一点,而无需创建一个新的数组列表来存储类似于 64x 的匹配,然后将它们分开?

        String input = "Hello world 65x";

ArrayList<String> userInput = new ArrayList<>();

Matcher isMatch = Pattern.compile("[0-9]*+[a-zA-Z]")
.matcher(input);
while (isMatch.find()) {
userInput.add(isMatch.group());
}

最佳答案

您可以尝试以下正则表达式:

\b(\p{Digit}+)(\p{Alpha})\b

此外,如果您打算经常使用正则表达式,建议使用常量,以避免每次都重新编译,例如:

private static final Pattern REGEX_PATTERN = 
Pattern.compile("\\b(\\p{Digit}+)(\\p{Alpha})\\b");

public static void main(String[] args) {
String input = "Hello world 65x";
Matcher matcher = REGEX_PATTERN.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}

输出:

65
x

关于java - 正则表达式向前将字符串分隔成标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40217452/

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