我想写一个正则表达式来获得第一个字符和下三个数字的多个匹配.一些有效的例子:A123,V322,R333.我尝试过类似的东西
[a-aA-Z](1)\d3
Run Code Online (Sandbox Code Playgroud)
您的正则表达式不起作用,因为它匹配:
[a-aA-Z]- 一个 ASCII 字母,然后(1) - 一个1数字(并放入捕获中)\d- 任意 1 位数字3 - 一个3数字。因此,即使在较长的短语中,它也会匹配Y193、E103等,其中Y和E不是第一个字母。
您需要使用单词边界并将模式修复为
\b[a-aA-Z][0-9]{3}
Run Code Online (Sandbox Code Playgroud)
注意:如果需要将其作为整个单词进行匹配,请\b在末尾添加:\b[a-aA-Z][0-9]{3}\b。
请参阅正则表达式演示。
细节:
\b - 前导字边界[a-aA-Z]- 一个 ASCII 字母[0-9]{3}- 3 位数字。C#代码:
var results = Regex.Matches(s, @"\b[a-aA-Z][0-9]{3}")
.Cast<Match>()
.Select(m => m.Value)
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |