簡體   English   中英

正則表達式 (或)在其中

[英]RegEx with | (or) in it

我有一個很長的正則表達式正在工作,但是最后我有一個部分讓我感到困惑。 我有一種情況,我正在解析一些HTML,並且可能發生兩種情況之一。 我正在搜索的模式以X結尾,然后緊跟一個數字,或者是  這是RegEx片段:

(X(\d+)| )

您可能已經注意到,我不在乎X或  ,我只想捕獲那里的數字。 看來,為了使用|,我必須使用捕獲組。 因此,如果該模式存在,我將同時得到X5和5。 我真的只希望捕獲到那里的數字。

謝謝!

要獲得分組的效果而沒有捕獲的效果,請使用(?:...)表示法:

(?:X(\d+)| )

除了不為X5創建捕獲組,而僅為5創建捕獲組,這與您編寫的內容等效。

(順便說一句,您說的是“一位數”,但是您的正則表達式具有\\d+而不是\\d ,因此它實際上可以匹配多個數字。)

您可以使用非捕獲組嗎?

(?:X(\d+)| )

嘗試

(?:X(\d+)| )

添加?:實際上是在分組時禁用了反向引用。

使用非捕獲組:

(?:X(\d+)| )

暫無
暫無

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

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