C# 为什么可以';t Regex匹配Richtextbox1中的邮政编码模式

C# 为什么可以';t Regex匹配Richtextbox1中的邮政编码模式,c#,regex,match,zipcode,C#,Regex,Match,Zipcode,为什么在richtextbox1中找不到邮政编码模式?正则表达式不能在richtextbox中查找并找到它吗 这是我使用的代码: string text = richTextBox1.Text.ToString(); Regex regex = new Regex(@"^\d{5}(?:[-\s]\d{4})?$"); foreach (Match match in regex.Matches(text)) { richTextBox2.Text += match; } 这是rich

为什么在richtextbox1中找不到邮政编码模式?正则表达式不能在richtextbox中查找并找到它吗

这是我使用的代码:

string text = richTextBox1.Text.ToString();
Regex regex = new Regex(@"^\d{5}(?:[-\s]\d{4})?$");

foreach (Match match in regex.Matches(text))
{
    richTextBox2.Text += match;
}
这是richtextbox1中的文本

Mr. Underpants
6666 E River Park Dr
South Lake, CA 96150-5117
United States
问题是您正在使用输入开头(
^
)和输入结尾(
$
)元字符“锚定”正则表达式

在本质上,你所说的只是一个邮政编码(没有周围的文字)。只需删除锚定字符,您的解决方案就会起作用:

\d{5}(?:[-\s]\d{4})?

移除
$
^
,魔法就会发生。哈哈,谢谢newstack!我还没用过那么多正则表达式谢谢你的解释,伊桑。我不是一个真正的正则表达式用户,我只是从一个代码片段网站上复制了它,哈哈,我只需要在这个场合使用它