如何使用模式匹配或任何方式从 "("
和 ")"
中提取字符串。例如,如果文本是
“你好(Java)”
那么如何只获得 "Java"
?
原文由 Rajeev Sahu 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何使用模式匹配或任何方式从 "("
和 ")"
中提取字符串。例如,如果文本是
“你好(Java)”
那么如何只获得 "Java"
?
原文由 Rajeev Sahu 发布,翻译遵循 CC BY-SA 4.0 许可协议
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\((.*?)\\)");
Matcher regexMatcher = regex.matcher("Hello This is (Java) Not (.NET)");
while (regexMatcher.find()) {//Finds Matching Pattern in String
matchList.add(regexMatcher.group(1));//Fetching Group from String
}
for(String str:matchList) {
System.out.println(str);
}
输出
Java
.NET
\\((.+?)\\)
是什么意思?
这个正则表达式模式将从 \\(
开始,它将匹配 (
因为它在 regExp 中保留,所以我们需要转义这个字符,同样的事情 \\)
-d-d22 和 –f5549839291fb107027b-d-d22 和 (.*?)
将匹配任何字符零次或多次 ()
被视为我们正在寻找的组。
原文由 akash 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答767 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
尝试这个:
或者