如何在RegEx中匹配整个字符串?

时间:2011-09-27 08:19:36

标签: c# .net regex

我想要两种模式:

1. "number/number number&chars"
2. "number_number"

1. "\d/\d \s"
2. "\d_\d"

这些并不真正有用。例如,第二个也匹配“asdf894343_84939”。 如何强制模式与WHOLE字符串匹配?

3 个答案:

答案 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。如果你想从整个字符串中得到结果,你必须使用你的模式:^你的模式$