[英]Java regex how to match _, /, or /123?
我已經准備好這個正則表達式[_[/\\\d+]]
來獲得以下任何一個
_
或者
/123
因此,當我嘗試匹配以下結果時
_
(匹配 -> 確定)
/
(匹配 -> 確定)
/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.