日期:2014-05-20  浏览次数:20725 次

如何用正则表达式匹配字符串同时提示那份不符合
从文本文件中读出一行数据(该行数据的每一项数据用“|”分割),要用正则匹配一下该行数据是否符合要求(这一点已经实现),现在是如果不符合的话要提示一下用户究竟在这行文本中的那一项出问题。

例子:
比方说有这样一行数据 aa|123456|bbb|cc||cc  
该行的第二项在正则中要求是7位数字,所以校验的经过为False,但如何提示第二项有问题呢



------解决方案--------------------
正则表达式不可能知道你是第二项应该是 7 个数字,还是第三项应该是 7 个数字!
------解决方案--------------------
如果第二项不限长度的话,那就再改:
那把"aa\\|(?!\\d{7})\\d{0,7}\\|bbb\\|cc\\|\\|cc"改成"aa\\|(?!\\d{7})\\d+\\|bbb\\|cc\\|\\|cc"就行了。