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

时间:2019-05-30 18:48:20

标签: java regex

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

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

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

3 个答案:

答案 0 :(得分:4)

我在移动设备上,无法运行它进行测试,但我相信,您可以使用unicode代码点在括号中进行匹配。因此,这应该可行:--- These four lines run fine on their own. CREATE OR ALTER VIEW view1 AS SELECT column1, column2, column3 FROM table1; --- This line runs fine on its own SELECT * FROM view1 --- If I run the whole script it doesn't work

答案 1 :(得分:2)

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

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

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

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

是有效的Java代码。

答案 2 :(得分:0)

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

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

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

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