与字符串"[ram]"
中的"abcd[ram]xyz"
(方括号和方括号一起包含的内容)匹配的正则表达式为"\[(.*?)\]"
。在同一字符串中匹配"ram"
(方括号内的内容)的正则表达式是什么?
最佳答案
与字符串"[ram]"
中的"abcd[ram]xyz"
匹配的正则表达式为"\[(.*?)\]"
的确如此,但是由于不愿意的量词?
使其成为rather inefficient one。更好的表达是
\[([^\]]*)\]
此修改避免了回溯,使其成为更有效的正则表达式。
在同一字符串中匹配
"ram"
(方括号内的内容)的正则表达式是什么?那就是表情!您需要做的就是从比赛中拉第1组:
Pattern p = Pattern.compile("\\[([^\\]]*)\\]"); // Note how slashes need double-escaping in Java
Matcher m = p.matcher("abcd[ram]xyz");
if (m.find()) {
System.out.println(m.group(1));
}
Demo on ideone.
关于java - 正则表达式以匹配方括号内的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21282947/