gpt4 book ai didi

java - :name, :othername, 的正则表达式:其他

转载 作者:行者123 更新时间:2023-12-02 10:54:16 25 4
gpt4 key购买 nike

我正在尝试获取字符串中的所有名称,如下所示:

:name, :lastName

但我似乎没有找到正确的方法。

这是我迄今为止尝试过的:

/^(:((\w+)(,:(\w+))+).*)$/

在 Java 中:

Pattern a = Pattern.compile("(:((\\w+)(,:(\\w+))+).*)");
Matcher m = a.matcher(":name,:lastName,:bd");
if( m.matches() ) {
for( int i = 0 ; i < m.groupCount() ; i++ ) {
out.println( i + " = " + m.group( i ) );
}
}

输出:

0 = :name,:lastName,:bd
1 = :name,:lastName,:bd
2 = name,:lastName,:bd
3 = name
4 = ,:bd

我正在尝试获取包含[name, lastName, bd]的可变数量的组

编辑

顺便说一句,我正在尝试使用更复杂的正则表达式来匹配简单的东西,例如:

 insert into table values ( :a, :b, :c )

/insert\s+into\s+(\w+)\s+values\s+(\( HERE IS MY QUESTION \))/

最佳答案

是否要求将结果放入不同的组中?否则这将起作用:

Pattern a = Pattern.compile(":([^,]+)");
Matcher m = a.matcher(":name,:lastName,:bd");
while (m.find()) {
System.out.println(m.group(1));
}

编辑:...如果您想获得结果数组,可以使用 split :

String data = ":name,:lastName,:bd";
String[] parts = data.replace(":", "").split(",", -1);
System.out.println(Arrays.toString(parts));

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

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