簡體   English   中英

正則表達式 - 帶替換的可選組

[英]Regex - Optional Group With Replacement

我需要在命名組中捕獲最多四位數字,如下所示:

    123       -> 123
    2357      -> 2357
    123 (11X) -> 11
    235 (7Y)  -> 7

如您所見,括號中的數字和字母是可選的。 雖然論壇上似乎有類似的問題,但我有限的知識使我無法調整他們的解決方案。

我的初步嘗試如下:

(?<ABC>\d{0,4})?|\((?<DEF>\d{0,4})(?<GHI>[A-Za-z])\)

正則表達式可視化

Debuggex Demo似乎捕獲了我需要的組,但是如何根據輸入在替換上下文中自動選擇正確的組 - ABC 或 DEF?

我是否需要“分支重置”以便我可以為組“ABC”和“DEF”指定相同的名稱,如果需要,我該如何實現?

請指教?

經過多次反復試驗,以下模式適用於 .NET [解決方案]:

    (?<ABC>\d{0,4}) ?\((?<ABC>\d{0,4})(?<GHI>[A-Za-z])?\)        

暫無
暫無

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

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