java - 正则表达式以匹配方括号内的字符串

标签 java regex

与字符串"[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/

相关文章:

Java:隐式类型转换,或隐式 toString() 调用

java - CDI : @Resource inject in junit weld?

java - 如何在 Selenium 网络驱动程序中将鼠标悬停在图像上以获取菜单列表

java - 为什么这个正则表达式与这个不匹配?

python - 从 HTML 调整电子邮件的格式

c# - 正则表达式 - 删除跨越多个换行符的 HTML 注释

java - 为什么 private static field = new Singleton 在 Java 中不懒惰?

Java 默认 NumberFormat 货币符号

Java正则表达式找出匹配单词的个数

r - 计算字符串开头有多少个空格