gpt4 book ai didi

java - 使用正则表达式

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

我有一个包含字母数字术语的字符串,如下所示。我想将字母提取到数组中。我编写了以下代码。

String pro = "1a1a2aa3aaa4aaaa15aaaaa6aaaaaa";
String[] p = pro.split("^([0-9].*)$");

Pattern pattern = Pattern.compile("([0-9].*)([A-z].*)");
Matcher matcher = pattern.matcher(pro.toString());
while (matcher.find())
{
System.out.println(matcher.group());
}
for(String s: p)
{
System.out.println(s);
}
System.out.println("End");

输出:

1a1a2aa3aaa4aaaa15aaaaa6aaaaaa
ENd

我什至尝试使用基于正则表达式的分割,但即使这样也不是真的。我认为我的正则表达式是错误的。我期待输出包含数组中的所有字母。

array[] = {'a', 'a', 'aa', 'aaa', 'aaaa', 'aaaaa', 'aaaaaa'}

最佳答案

您可以使用以下内容对除字母字符之外的任何内容进行分割

String s = "1a1a2aa3aaa4aaaa15aaaaa6aaaaaa";
String[] parts = s.split("[^a-zA-Z]+")

for (String m: parts) {
System.out.println(m);
}

使用 Matcher 方法,您可以执行以下操作。

String s  = "1a1a2aa3aaa4aaaa15aaaaa6aaaaaa";

Pattern p = Pattern.compile("[a-zA-Z]+");
Matcher m = p.matcher(s);

List<String> matches = new ArrayList<String>();

while (m.find()) {
matches.add(m.group());
}

System.out.println(matches); // => [a, a, aa, aaa, aaaa, aaaaa, aaaaaa]

关于java - 使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599483/

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