1
我有一個包含字母或數字和破折號的標識符。 我想要做的是在第一個短劃線之前保留前3個字母,並刪除其餘的部分,然後在第一個短劃線之後保留2個第一個字母。RegEx保留前3個字符並刪除其餘
舉例來說,我有以下ID:
9D3236A9-B496-4597-87E4-3A3FB69D07BF
輸出ID應該是:9D3B445873A3
。
我曾嘗試:
^.{3}\-
但沒有任何反應。你能幫忙嗎?
我有一個包含字母或數字和破折號的標識符。 我想要做的是在第一個短劃線之前保留前3個字母,並刪除其餘的部分,然後在第一個短劃線之後保留2個第一個字母。RegEx保留前3個字符並刪除其餘
舉例來說,我有以下ID:
9D3236A9-B496-4597-87E4-3A3FB69D07BF
輸出ID應該是:9D3B445873A3
。
我曾嘗試:
^.{3}\-
但沒有任何反應。你能幫忙嗎?
您可以使用
^([A-Za-z0-9]{3})[A-Za-z0-9]*|-([A-Za-z0-9]{3})[A-Za-z0-9]*$|-([A-Za-z0-9]{2})[A-Za-z0-9]*
與$1$2$3
更換。請參閱regex demo。
詳細
^
- (在替換$1
)第1組 - 串 開始
([A-Za-z0-9]{3})
:3個字母數字字符[A-Za-z0-9]*
- 0+字母數字|
- 或
-
- 連字符([A-Za-z0-9]{3})
- (在替換$2
)第2組:3個字母數字字符[A-Za-z0-9]*
- 0+字母數字$
- 串的端|
-
- 連字符([A-Za-z0-9]{2})
- 第3組($3
在更換):2個字母數字字符[A-Za-z0-9]*
- 0+字母數字。您可以使用給定的正則表達式在這個demo
(^.{3})[a-z0-9A-Z]*((?>-).{2})[a-z0-9A-Z]*((?>-).{2})[a-z0-9A-Z]*((?>-).{2})[a-z0-9A-Z]*((?>-).{2})[a-zA-Z0-9]*
你在最新的部分保留三個字母'3A3'。這是你慾望輸出的一部分嗎? – Kasramvd
它可能看起來像[this](https://regex101.com/r/IkiOer/1)。或者像[this](https://regex101.com/r/IkiOer/3)。或者[這個](https://regex101.com/r/IkiOer/4)。那麼,你的(沒有破折號)評論是不明確的。如果你需要'9D3B445873A3',只需說明你需要這個輸出。 –
@WiktorStribiżew很棒的答案。我需要你給我的正則表達式,但輸出不應該有任何破折號。它應該是你在最後一行中提到的。 (9D3B445873A3)你認爲你也可以爲它提供一個正則表達式嗎? – JustCodingPlease