java - 正则表达式匹配三个前导和结束单引号

标签 java regex

我在为下面的 Java 正则表达式获取正确语法时遇到问题。我只想搜索一个 String 以查看它是否包含一段以三个单引号开头并以三个单引号结尾但前后可以有其他文本的文本。三个单引号之间可以存在任何 UTF-8 字符。我哪里出错了?

          String value="'''<html><head><title>Hello World</title></head><body><div>text</div></body></html>'''";
          Pattern p = Pattern.compile("'''[\\w*]'''");
          Matcher m = p.matcher(value);
          if(m.find()){
              System.out.println("''' found");
          }else{
              System.out.println("''' not found");
          }

最佳答案

Any ideas where I've gone wrong?

您的正则表达式有两处错误:

  1. 您正试图将 * 量词放在字符类中,而它应该放在字符类之外。
  2. 您正在尝试使用单词字符 (\w) 预定义字符类来匹配 <、>、/等字符,而它只会匹配 [a-zA-Z_0-9]。如果您想匹配任何字符,请使用 .(任何字符)

将正则表达式更改为 Pattern p = Pattern.compile("'''.*'''"); 应该可以使您的问题中提供的代码正常工作。

其他答案中建议的模式也将提供解决方案。

关于java - 正则表达式匹配三个前导和结束单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759394/

相关文章:

java - Maven 故障保护 : verify always returns exit code 0

java - 用于帧间按钮按下的 InternalFrameListener?

linux 中的 java 版本

python - rpy2错误: "unrecognized escape in character string"

python - 从任一方向正则表达式 python 匹配时分隔某些字符

java - 在抽象方法的签名中省略对象类型

java - JAXB 不生成所有元素类

java - JSP、Spring框架——正则表达式表单验证

javascript - 如何从 String.prototype.replace() 方法中的回调返回正确的值?

java - 从正则表达式中检索不匹配和匹配的文本