我試圖捕捉以下6位數字:麻煩與正則表達式中的非捕獲組
ObjectID: !nrtdms:0:!session:slonwswtest1:!database:TEST:!folder:ordinary,486150:
我嘗試以下的正則表達式:
\d+(?::$)
嘗試使用非捕獲組將大腸脫離返回的匹配,但它返回冒號,如下所示:
486150:
任何標識我做錯了什麼?
我試圖捕捉以下6位數字:麻煩與正則表達式中的非捕獲組
ObjectID: !nrtdms:0:!session:slonwswtest1:!database:TEST:!folder:ordinary,486150:
我嘗試以下的正則表達式:
\d+(?::$)
嘗試使用非捕獲組將大腸脫離返回的匹配,但它返回冒號,如下所示:
486150:
任何標識我做錯了什麼?
你要積極前瞻:
\d+(?=:$)
一個非捕獲組是根本無法通過反向引用來訪問一組;儘管如此,他們仍然是比賽的一部分。
或者,你可以使用
(\d+):$
,並獲得第一個比賽組。
太棒了。非常感謝。 – CodingUnderDuress
@CodingUnderDuress沒問題,很高興我能幫上忙。 – arshajii
可能是您的正則表達式工具正在返回完整匹配,因爲您沒有任何捕獲組。嘗試將\d+
放在捕獲組中,並找到在正則表達式工具中獲取捕獲組1的方式。
另外,您還可以使用正前瞻:
\d+(?=:$)
的,而且是要捕捉6個數字,你就可以說明確:
\d{6}
你對這個工具可能是對的。儘管如此,先行的方法是偉大的。非常感謝。 – CodingUnderDuress
@CodingUnderDuress。不客氣:)接受答案。 –
雖然他在該正則表達式中沒有任何捕獲組。 – arshajii
也許'\ d {6}'會比聲稱它在最後一部分簡單字符串... – Bergi