我不擅长正则表达式。但是,我不知道我在这里做错了什么。我需要一个匹配“-E1(”或“-E22(”等)的正则表达式。我目前正在尝试
var pattern = @"[-E][0-9]?\s\("
但它不返回“S1-E2 (702)”或“S3-E16 (705)”的匹配项。
任何帮助都会很棒。使用 C#。
与[-E]
你将匹配-
或E
..不是两者
要匹配多个数字,请使用[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 ]+\("
删除 -E 周围的括号。另外,看起来您需要多个数字,因此请使用 [0-9]+。最终的正则表达式类似于-E[0-9]{1,2}\s(。如果您期望超过两位数,请将{1,2}替换为+ 。
你应该用 -E\d+ 替换你的代码