簡體   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