繁体   English   中英

这个正则表达式有什么问题?

[英]What's wrong with this regular expression?

这几乎可以肯定是我忽略的非常愚蠢的事情,但我很难过。 以下 C# 样式表达式应该与电话号码匹配(它们的有限子集,但这只是测试......):

^[0-9]{3}-[0-9]{3}-[0-9]{4}$

搜索字符串如下:

978-454-0586\r\nother junk\r\nmore junk\r\nhttp://www.google.com\r\n

该表达式在孤立时与电话号码匹配,但在与其他东西相邻时则不匹配。 例如,如果我在接完电话后把所有东西都删掉,那效果就很好。

如何修改表达式以使其与电话号码匹配并且不会挂断在垃圾邮件的 rest 上?

谢谢!

^ 和 $ 符号分别表示“行首”和“行尾”。 如果您想在一行中间匹配,请摆脱它们。

正则表达式中的“$”匹配行尾。 如果你删除它,正则表达式应该可以正常工作,但如果你有“Foo978-454-0586”,它就不会工作,因为“^”匹配一行的开头。

电话号码总是在自己的线路上吗? 如果是这样,请将 RegexOptions.Multiline 添加到您的 Regex 构造函数中。 如果没有,regex.match 将字符串的开头和结尾用于 ^ 和 $。

$表示字符串的结尾,而不是行尾。

问题是“^”和“$”强制它只匹配字符串的开头和字符串的结尾。

去掉这两个标签,看看你的 go 怎么样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM