正则表达式找到括号和内部的数字。 Java的

时间:2015-07-02 07:05:32

标签: java regex

用于查找括号的正则表达式和这些pantnthesis中的数字是什么?

期望的输出:

  • input = "Hello (1) World"。replaceAll(regex," *");
  • result = Hello * World

我尝试了以下内容:

  • input = "Hello (1) World"。replaceAll("([0-9])"," *");
  • result =" "Hello (*) World"

为什么呢?

2 个答案:

答案 0 :(得分:1)

()是正则表达式中的保留字符(它们创建一个组)。你需要逃脱它们来取代它们:

"Hello (1) World".replaceAll("\\([0-9]\\)", "*");

答案 1 :(得分:1)

你可以试试这个,

"Hello (1) World".replaceAll("\\(\\d+\\)", "*");

()是正则表达式中的特殊字符,表示捕获组。必须捕获()内的任何内容。因此,如果您使用([0-9]),则会捕获字符串中的所有数字并替换为*。它不匹配(digit)表单。因此,为了匹配文字()字符,您需要转义它们。如果您还想替换(989898)(anynum),则需要在+\\d之后添加[0-9]