簡體   English   中英

Java 正則表達式如何匹配_、/或/123?

[英]Java regex how to match _, /, or /123?

我已經准備好這個正則表達式[_[/\\\d+]]來獲得以下任何一個

  • 下划線 -> _

或者

  • 正斜杠后跟一些數字/123

因此,當我嘗試匹配以下結果時

  1. _ (匹配 -> 確定)

  2. / (匹配 -> 確定)

  3. /123 (不匹配 -> 不正確)

我在這里想念什么?

您正在使用[]表示一個字符 class 將匹配任何一次列出的任何一個。 使用\d+將匹配一個數字或一個+字符。

如果您在字符 class 本身上添加像+這樣的量詞,您將重復列出的任何內容,但您將沒有 OR 邏輯。

您應該使用 pipe | 對於將匹配下划線或正斜杠后跟 1+ 數字的 OR 部分。

要匹配單個正斜杠,您可以使用*而不是+匹配 0+ 位

_|/\d+

正則表達式演示

注意在 Java _|/\\d+中雙重轉義反斜杠

使用: _|\\d*

解釋:

  _     # an underscore
|       # OR
  /     # a slash
  \\d*  # 0 or more digits

您可以簡單地使用模式: _|/\\d*

| 本質上將兩個單獨的模式組合成一個,如果任何一方匹配,就會匹配。

這將匹配:

  • _
  • /
  • /1
  • /12
  • /123

如果我理解正確你的問題,你想要:

  • 一個下划線
  • 或斜線后跟一位或多位數字

這是我的解決方案:

_|(/\\d+)

意義:

  • _ : 下划線
  • | : 或者
  • ( : 捕獲組的開始
  • \\d : 數字
  • + :一次或多次
  • ) : 結束捕獲組

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM