我正在尝试编写一个正则表达式,它将在CVS(Coma分隔值)文件中找到一堆电话号码。
抓住是我只对特定列中的电话号码感兴趣(仅在特定数量的昏迷之后才感兴趣)。在下面,我有正则表达式可以做到这一点,并且按照Javascript标准,它可以正常工作。
(?:^([^^]*\,){3}[^^]*)\d{3}-\d{3}-\d{4}
我实际上在Bash中工作,并且使用sed,grep,但我什至找不到grep和sed使用的正则表达式标准?
这是示例文本。
请注意,现在我使用'^'代替','来使值分开,因为用户在值中包括了逗号。)
这不是实际数据,只是为了保留个人隐私
28434658^17 Three^2013-09-19T19:57:23Z^80 W 54th St, Penthouse & 4th Fl, NY, 10018s212-409-1641^^Mary Szyb 347-340-1918^2 x week Thur 2.5hrs & Sat 4 hrs
28937693^356 West 36th street^2013-09-19T18:17:57Z^356 West 36th street, suite 706sNew York New York 10018^null^null^on call:
29219313^333 rector pl^2013-10-07T17:11:36Z^333 Rector Place 248-469-5859^^Jose Hernandez^2 x week Wed & Fri
28854346^50 Can^2013-09-23T13:10:54Z^152 East 28th Street, 7th Floor, NY, 10018s917-932-3962s646-710-4170^155 W 24rd St 3rd FL^null^Swlvia Smith347-933-6630sIrena Brown 347-991-1346s5 x week Mon-Fri
28434698^4Eleven^2013-09-19T19:57:23Z^112 West 28th Street, 3th Fl,sNY, 10018s917-922-3862s646-710-4170^^null^null
我还要澄清一件事,正确的输出将是:
212-409-1641
248-469-5859
917-932-3962
646-710-4170
917-922-3862
646-710-4170
因为这些是第4列中唯一的电话号码
我正在发布结束工作的正则表达式:
([0-9]{3}-[0-9]{3}-[0-9]{4})(?=[^^]*(\^[^^]*){3}$)
谢谢大家的帮助
我想从这个问题中可以得出的教训是,如果一个解决方案不起作用,请尝试从不同角度进行工作,在这种情况下,请从后面数列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句