这几乎可以肯定是我所忽略的傻事,但我很难过。以下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
表达式在隔离时与电话号码匹配,但不在其他内容旁边时。例如,如果我在手机后丢掉所有东西,那就很棒了。
如何修改表达式以使其与电话号码匹配,并且不会挂在其余的垃圾邮件上?
谢谢!
答案 0 :(得分:5)
^和$符号分别表示“行首”和“行尾”。如果你想在一条线的中间匹配,摆脱它们。
答案 1 :(得分:4)
“$”匹配行的结尾。如果你删除它,正则表达式应该可以正常工作,但如果你有“Foo978-454-0586”,它将无法工作,因为“^”匹配一行的开头。
答案 2 :(得分:3)
电话号码是否总是在自己的线路上?如果是这样,请将RegexOptions.Multiline添加到Regex构造函数中。没有它,regex.match正在使用^和$。
的字符串的开头和结尾答案 3 :(得分:1)
$
表示字符串的结尾,而不是行尾。
答案 4 :(得分:1)
问题在于“^”和“$”强制它仅匹配字符串的开头和字符串的结尾。
删除这两个标签,看看你怎么做。