regex 正则表达式组-使用正则表达式在日志中精确的多个单词[已关闭]

7uzetpgm  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(214)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

5小时前关门了。
Improve this question
我有一个类似下面的长日志行,我想提取括号中的数据(测试1)。但是,这个日志可能有任何括号中的数据。
是否有正则表达式可以提取所有关键字,而不是拆分日志并分别提取每个关键字?

    • 示例日志**
data :cn=abcdef...(test1) asdfgh cn=qwerty (test2) qwerty cn=qwerty (test3)... cn=qwerty (test10)
    • 预期产出**
test1
test2
test3
...
tesst10
6vl6ewon

6vl6ewon1#

您可以使用regex\((\w+)\)和捕获组(1)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Main {
    public static void main(String[] args) {
        String str = "data :cn=abcdef...(test1) asdfgh cn=qwerty (test2) qwerty cn=qwerty (test3)... cn=qwerty (test10)";
        Matcher matcher = Pattern.compile("\\((\\w+)\\)").matcher(str);
        while (matcher.find())
            System.out.println(matcher.group(1));
    }
}
    • 输出**:
test1
test2
test3
test10

我假设括号内只有单词字符,如果括号内的字符可以是任何字符,则使用.+?代替\w+,如here所示。

相关问题