我想要两种模式:
1. "number/number number&chars"
2. "number_number"
1. "\d/\d \s"
2. "\d_\d"
这些并不真正有用。例如,第二个也匹配“asdf894343_84939”。 如何强制模式与WHOLE字符串匹配?
答案 0 :(得分:7)
您需要使用行尾^
和行尾$
字符;例如,对于第二种模式,请使用^\d_\d$
。
答案 1 :(得分:2)
你使用'\ A'和'\ Z'标志 -
Regex.IsMatch(subjectString, @"\A\d_\d\Z");
\ A匹配字符串中第一个字符前的位置。不 受MultiLine设置的影响
\ Z匹配字符串最后一个字符后的位置。不 受MultiLine设置的影响。
从 - http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet
答案 2 :(得分:1)
对于第二个任务(number_number),您可以使用 [^ a-zA-Z] \ d。* _ \ d。* ,在您的示例中为asdf894343_84939,您将获得894343_84939,或者如果您需要只获得一位数 - 在\ d。之后删除。*。
在你的第一个任务中,你也可以使用 \ d。* / \ d [^ \ s] ,例如,如果你有34/45 sss - 你得到34/45。如果你想从整个字符串中得到结果,你必须使用你的模式:^你的模式$