gpt4 book ai didi

java - 正则表达式在空格和其他字符上拆分字符串

转载 作者:行者123 更新时间:2023-11-30 09:28:36 26 4
gpt4 key购买 nike

Pattern p = Pattern.compile("(.+)\\s(.+)\\s(.?)$");
Matcher m = p.matcher(line);
System.out.println("Method:");
System.out.println(m.group(1));
System.out.println(m.group(2));

上面的代码是我用来分割这个字符串的代码:

method(public, static, void) main(String[] args){

我希望能够在字符串中获取 method(public, static, void) 并在另一个字符串中获取 main(String[] args)。我不想要最后一个 { 并且 ){ 之间可能有空格。

到目前为止,我的代码是这样做的:

Method:
method(public, static, void) main(String[]
args){

我不擅长正则表达式。 (我的代码目前不处理最后一个 {,但我可以解决这个问题。)问题是我无法按照我想要的方式拆分该行。

最佳答案

你不需要PatternMatcher这里。您应该使用 String#split() split 的方法你的字符串 ) ,并获取数组的前两个元素:-

String str = "method(public, static, void) main(String[] args){";

String[] parts = str.split("\\)");

System.out.println(parts[0]); // method(public, static, void
System.out.println(parts[1]); // main(String[] args

但是,您可以看到的问题是,您的字符串不会包含最后一个 )在他们中。

要在数组元素中包含分隔符,您可以在正则表达式上使用look-behind:- "(?<=\\))" .现在,这将在 empty character 上拆分您的字符串前面是 ) .

这是你需要的:-

String[] parts = str.split("(?<=\\))");  // split on empty character after )
System.out.println(parts[0]);
System.out.println(parts[1]);

输出:-

method(public, static, void)
main(String[] args)

关于java - 正则表达式在空格和其他字符上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939550/

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