我不擅長正則表達式。但是,我不知道我在這裏做錯了什麼。我需要一個正則表達式將匹配「-E1(」或「-E22(」等我目前正在創建工作正則表達式
var pattern = @"[-E][0-9]?\s\("
但是它會返回匹配項「S1-E2(702)」或「S3-E16 (705)」。
任何幫助將是巨大的。使用C#。
我不擅長正則表達式。但是,我不知道我在這裏做錯了什麼。我需要一個正則表達式將匹配「-E1(」或「-E22(」等我目前正在創建工作正則表達式
var pattern = @"[-E][0-9]?\s\("
但是它會返回匹配項「S1-E2(702)」或「S3-E16 (705)」。
任何幫助將是巨大的。使用C#。
刪除周圍-E括號。再加上它看起來像你期望的多個數字,所以用[0-9] +。最後的正則表達式將會像-E [0-9] {1,2} \ s(。將{1,2}與+如果您期望超過兩個d igits。
隨着[-E]
你要在這裏匹配-
或E
..not兩者
來匹配多個數字使用[0-9]+
.. +
是一個量詞來匹配1對多位數
所以,它應該是
var pattern = @"-E\d+\s\("
如何簡單地做..
var pattern = @"-E[0-9 ]+\("
正則表達式:
-E '-E'
[0-9 ]+ any character of: '0' to '9', ' ' (1 or more times)
\( '('
以下量詞是公認的:
* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
或者你可以使用:
var pattern = @"-E[\d ]+\("
這將允許在括號和空格之前的多個空格_位於數字之內 - 因此將拾取「-E2 3 4(例如」,除非這是期望的行爲,否則空格應該不在[]內。 – n4m16
您shoulb與-E來代替你的代碼\ d +
在這個問題答案Anirudh也將[0-9]更改爲\ d在練習中都是代表「全部數字」。 – n4m16