C# 如何在正则表达式中匹配整个字符串?

C# 如何在正则表达式中匹配整个字符串?,c#,.net,regex,C#,.net,Regex,我想有两种模式: 1. "number/number number&chars" 2. "number_number" 1. "\d/\d \s" 2. "\d_\d" 这些真的不管用。例如,第二个也与“asdf894343_84939”匹配。 如何强制模式匹配整个字符串?您需要使用行首^和行尾$字符;例如,对于第二个模式,使用“\A”和“\Z”标志- Regex.IsMatch(subjectString, @"\A\d_\d\Z"); \匹配字符串中第一个字符之前的位置。不 受

我想有两种模式:

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

1. "\d/\d \s"
2. "\d_\d"
这些真的不管用。例如,第二个也与“asdf894343_84939”匹配。
如何强制模式匹配整个字符串?

您需要使用行首
^
和行尾
$
字符;例如,对于第二个模式,使用“\A”和“\Z”标志-

Regex.IsMatch(subjectString, @"\A\d_\d\Z");
\匹配字符串中第一个字符之前的位置。不 受多行设置的影响

\Z匹配字符串最后一个字符后的位置。不 受多行设置的影响

在-

中,对于第二个任务(数字),您可以使用[^a-zA-Z]\d.*.\ud.,在您的示例asdf894343_84939中,您可以获得894343_84939,或者如果您只想获得一个数字,则可以在\d之后使用-remove.*


在第一个任务中,您还可以使用\d.*/\d[^\s],例如,如果您有34/45个sss,那么您将得到34/45。若要从整个字符串中获得结果,必须在模式中使用:^您的模式$

^\d.*/\d.*$也匹配3829/32a38。为什么?不允许使用字符。如何在第二个数字后强制输入空格?1^\d*\/\d*\w.*2美元^\d*\ud*$