繁体   English   中英

Java中的正则表达式,用于“大于”或“小于”,而不使用方括号“ <|>”

[英]Regex in Java for “greater than” or “less than” without using bracket “<|>” symbols

我需要Java Pattern.compile(“ <|>”)的正则表达式来匹配大于和小于符号的字符,而无需实际使用括号符号。 是否有一些特殊字符表示“>”或“ <”符号?

附加信息:原因是我的旧系统从资源文件中传递正则表达式,该文件首先使用一些html标记进行解析,并且多余的括号使解析器混乱,因此出错。 解决方案是用Java Pattern解释为“>”和“ <”的其他内容替换“>”和“ <”。

我试过的:Pattern.compile(“&grt;”)不会被解释为“>”

我在移动设备上,无法运行它进行测试,但是我相信您可以使用unicode代码点在括号中进行匹配。 这样就可以了: Pattern.compile("\\\<|\\\>");

有几种方法可以做到这一点:

  • 您可以将其记录为ASCII序号,如下所示: ((char) 60) + "|" + ((char) 62) ((char) 60) + "|" + ((char) 62) ;
  • 您可以在正则表达式中使用Unicode转义序列: \\\<|\\\> ;
  • 您可以使用Java Unicode转义序列,例如: \<|\>

关于最后一点-很少使用,但是程序员可以在Java源代码中的任何地方使用Unicode转义序列。 例如,

public\u0020class\u0020Main {
    public\u0020static\u0020void\u0020main(String[] args) { }
}

是有效的Java代码。

您可以简单地转义这些字符,例如:

Pattern.compile("\\<|\\>")

通过使用反斜杠,您告诉正则表达式“按原样使用该字符!”

有关转义字符的更多信息,请参见https://www.baeldung.com/java-regexp-escape-char

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM