如何使用Java和正则表达式检查单词是否以括号I.e word(s)结尾?

时间:2015-05-31 20:34:20

标签: java regex

我尝试创建一个正则表达式,这将帮助我解决以下问题,但无法:

示例词:mumbai(10)

正则表达式应检查单词是否以上述单词(10)中的值{I "Mumbai(10)"的括号结尾。并且应该提取值I.e.10。

如果单词是Mum(10)bai,则输出结果不应该是。

3 个答案:

答案 0 :(得分:1)

您可以使用以下内容进行匹配:

\\((\\d+)\\)$

并提取第1组$1作为值。

请参阅DEMO

Java代码:

String str = "mumbai(10)";
Matcher m =  Pattern.compile("\\((\\d+)\\)$").matcher(str);
if (m.find()) {
    System.out.println(m.group(1));
}

答案 1 :(得分:-1)

您可以尝试使用正则表达式,

\((\d+)\)$

Demo

它使用group capture

的概念

答案 2 :(得分:-1)

String string = "mumbai(10)";
Pattern p = Pattern.compile("^.*\\((\\d+)\\)$");
Matcher m = p.matcher(string);
if (m.matches()) {
    System.out.println(m.group(1));
}

^$分别表示开头和结尾。 .*只匹配任何内容。括号需要进行转义,因为它们代表正则表达式中的一个组,之后正在使用它。然后可以使用m.group(1)提取捕获的组。