如何不将字符串实例与换行符匹配



我刚开始使用Regex,遇到了一个问题。我已经到了一定的地步,我陷入了困境,我不知道如何"忽略"或不匹配一个有断线的引脚,这导致代码无法通过测试。

using System;
using System.Text.RegularExpressions;
public class Pin
{
public static bool ValidatePin(string pin){
string pattern = "^([0-9]{4}|[0-9]{6})$";
Regex reg = new Regex(pattern); 
Match match = reg.Match(pin);

if (match.Success) {
return true;
} else {
return false;
}

我有上面的正则表达式,我该如何实现它,以便当它试图将pin与换行符匹配时,它返回";"假";。失败的测试引脚为:"1234\n〃;。

$(可以在字符串末尾的换行符号之前匹配(替换为字符串的最末尾z,使用

string pattern = @"A([0-9]{4}|[0-9]{6})z";

A代替^也很有用,以便始终匹配字符串的开头(如果您有意的话(。

见证明。

解释

--------------------------------------------------------------------------------
A                       the beginning of the string
--------------------------------------------------------------------------------
(                        group and capture to 1:
--------------------------------------------------------------------------------
[0-9]{4}                 any character of: '0' to '9' (4 times)
--------------------------------------------------------------------------------
|                        OR
--------------------------------------------------------------------------------
[0-9]{6}                 any character of: '0' to '9' (6 times)
--------------------------------------------------------------------------------
)                        end of 1
--------------------------------------------------------------------------------
z                       the end of the string

相关内容

  • 没有找到相关文章

最新更新