用于查找括号的正则表达式和这些pantnthesis中的数字是什么?
期望的输出:
"Hello (1) World"
。replaceAll(regex
," *"); Hello * World
我尝试了以下内容:
"Hello (1) World"
。replaceAll("([0-9])"
," *"); "Hello (*) World"
为什么呢?
答案 0 :(得分:1)
(
和)
是正则表达式中的保留字符(它们创建一个组)。你需要逃脱它们来取代它们:
"Hello (1) World".replaceAll("\\([0-9]\\)", "*");
答案 1 :(得分:1)
你可以试试这个,
"Hello (1) World".replaceAll("\\(\\d+\\)", "*");
()
是正则表达式中的特殊字符,表示捕获组。必须捕获(
,)
内的任何内容。因此,如果您使用([0-9])
,则会捕获字符串中的所有数字并替换为*
。它不匹配(digit)
表单。因此,为了匹配文字(
,)
字符,您需要转义它们。如果您还想替换(989898)
即(anynum)
,则需要在+
或\\d
之后添加[0-9]