我有以下情况
我必须匹配类似的东西
abc#(x,-12d)
or
abc#(x,-12d, 24d) etc.
Run Code Online (Sandbox Code Playgroud)
这意味着最后一个参数是可选的.
我已经制作了正则表达式并且它可以正常工作,但由于我不知道如何制作可选项,因此我将使用两种不同的regExpression.
public static bool ValidFn(string input)
{
string regEx1 = @"^[a-zA-Z]*#\([A-Za-z0-9]+,[-|+]?\d+[dwmqy],[-|+]?\d+[dwmqy]\)";
string regEx2 = @"^[a-zA-Z]*#\([A-Za-z0-9]+,[-|+]?\d+[dwmqy]\)";
Regex r1 = new Regex(regEx1);
Regex r2 = new Regex(regEx2);
Match m1 = r1.Match(input);
Match m2 = r2.Match(input);
if (m1.Success || m2.Success) return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
如何使regExp1成为可选项,以便我可以省去regExp2的使用.
谢谢
?正则表达式中的字符表示"重复0或1次".因此,它使语句可选.
你想要捕获它存在的最后一个",24d".你需要包装什么捕获",24d"?字符.
这个正则表达式将:
string regEx1 = @"^[a-zA-Z]*#\([A-Za-z0-9]+,[-|+]?\d+[dwmqy](,\s*[-|+]?\d+[dwmqy])?\)";
Run Code Online (Sandbox Code Playgroud)
请注意,我添加了一个\s*以捕获空白后的空格,
| 归档时间: |
|
| 查看次数: |
4414 次 |
| 最近记录: |