Addr:ABC DEF ~.d
Tel:0424
Email:HIJ@X.com
如上所示,要求的字符串中Addr: Tel: Email:这些是固定要求匹配的,中间用换行符\r\n分隔,每一项之后都必须至少有一个非空字符(注意:可能是若干个含特殊字符的单词),为简单计,可不对Tel和Email后的字符做具体要求。
即要求是
Addr:一个以上非空字符(可能是若干个单词含空格与特色字符)\r\nTel:
一个以上非空字符(可能是若干个单词含空格与特色字符)\r\nEmial:一个以上非空字符(可能是若干个单词含空格与特色字符)
求教:这个正则表达式该怎么写?
一直都不对,救命~~~~~~~~~~~
6 个解决方案
#1
Addr:.*?Tel:.*?Email:.*?(?=\n)
#2
To:liuyilin777
非常感谢,可是不对啊
非常感谢,可是不对啊
#3
Addr:\s*\S+.*\nTel:\s*\S+.*\nEmail:\s*\S+.*
最后用了这个,虽然写着有点长,但,好在易读懂!
最后用了这个,虽然写着有点长,但,好在易读懂!
#4
检查下你是否启用了多行匹配模式。
一种办法是new一个Regex对象,设置MultiLine=true
一种办法是加上(?is)
一种办法是new一个Regex对象,设置MultiLine=true
一种办法是加上(?is)
#5
地址用 (?<=Addr:)\w*
电话用 (?<=Tel:)\d*
邮件用 (?<=Email:).*@.*\.com
电话用 (?<=Tel:)\d*
邮件用 (?<=Email:).*@.*\.com
#6
string pattern = @"^(?is)Addr:.*?\r\nTel:\d+\s*\r\nEmail:[_0-9a-z]+@[_0-9a-z]+(\.[_0-9a-z]+)+$";
#1
Addr:.*?Tel:.*?Email:.*?(?=\n)
#2
To:liuyilin777
非常感谢,可是不对啊
非常感谢,可是不对啊
#3
Addr:\s*\S+.*\nTel:\s*\S+.*\nEmail:\s*\S+.*
最后用了这个,虽然写着有点长,但,好在易读懂!
最后用了这个,虽然写着有点长,但,好在易读懂!
#4
检查下你是否启用了多行匹配模式。
一种办法是new一个Regex对象,设置MultiLine=true
一种办法是加上(?is)
一种办法是new一个Regex对象,设置MultiLine=true
一种办法是加上(?is)
#5
地址用 (?<=Addr:)\w*
电话用 (?<=Tel:)\d*
邮件用 (?<=Email:).*@.*\.com
电话用 (?<=Tel:)\d*
邮件用 (?<=Email:).*@.*\.com
#6
string pattern = @"^(?is)Addr:.*?\r\nTel:\d+\s*\r\nEmail:[_0-9a-z]+@[_0-9a-z]+(\.[_0-9a-z]+)+$";