使用正则表达式解析 Java 字符串

标签 java regex

我尝试使用正则表达式解析字符串以从中获取参数。 例如:

String: "TestStringpart1 with second test part2"
Result should be: String[] {"part1", "part2"}
Regexp: "TestString(.*?) with second test (.*?)"

我的测试代码是:

String regexp = "TestString(.*?) with second test (.*?)";
String res = "TestStringpart1 with second test part2";

Pattern pattern = Pattern.compile(regexp);
Matcher matcher = pattern.matcher(res);
int i = 0;
while(matcher.find()) {
    i++;
    System.out.println(matcher.group(i));
}

但它只输出“part1” 有人可以给我提示吗?

谢谢

最佳答案

可能是一些修复正则表达式

String regexp = "TestString(.*?) with second test (.*)";

并更改 println 代码..

if (matcher.find())
    for (int i = 1; i <= matcher.groupCount(); ++i)
        System.out.println(matcher.group(i));

关于使用正则表达式解析 Java 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1318137/

相关文章:

java - 如何在 Jasmin 中创建数据池?

Java SIP 客户端就像 Android 中存在的那样

php - 用于匹配字符串中单引号单词并忽略转义单引号的正则表达式模式

java - Adobe ColdFusion 9 中的 "JVM and Java Settings"CF 管理页面在哪里

java - 如果知道集合中只有一个对象,如何从中获取对象?

java - 为什么我的实例被垃圾收集

Python 使用正则表达式拆分字符串

java - 正则表达式匹配重复两次的单词(即 hello hello hello)

javascript - 解析 SQLite 更改、创建和更新

JavaScript:从字符串中的数字添加或减去