[英]Java regex wildcard not accepted
String depends2 = "success(job1) AND n(job2)";
depends2 = depends2.replaceAll("[\\s].(?i)[snd][\\s]*\\(", "");
System.out.println(depends2);
我希望这能输出
success(job1) ANDjob2)
相反,它输出
success(job1) AND n(job2)
[\\\\s].(?i)[snd]
您的正则表达式中的这确保了空格和n
之间必须有一个字符( 后跟零个或多个空格加(
symbol )。但实际上没有字符。因此,您的正则表达式将失败并返回原始字符串,而不进行任何替换。
String depends2 = "success(job1) AND n(job2)";
depends2 = depends2.replaceAll("\\s(?i)[snd]\\s*\\(", "");
System.out.println(depends2);
输出:
success(job1) ANDjob2)
说明:
\s whitespace (\n, \r, \t, \f, and " ")
(?i) set flags for this block (case-
insensitive) (with ^ and $ matching
normally) (with . not matching \n)
(matching whitespace and # normally)
[snd] any character of: 's', 'n', 'd'
\s* whitespace (\n, \r, \t, \f, and " ") (0 or
more times)
\( '('
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.