在Javascript中,我正在读取.txt文件以解析并放入HTML表格。这工作得很好。在这些信息中,有地址线,它们是第一行和第二行(第二行是公寓号码,空格号码等)的组合。它将这些细节读入一行。
我想要做的是分手什么是第一和第二个地址行,以便它可以干净地馈送到数据库中。为了打破它们,我写了一个正则表达式来捕捉尽可能多的选项。他们中的大多数工作得很好。其中一个拒绝正常工作,即使所有的测试用小例子说它应该工作。
下面是我想与之合作的正则表达式的部分:使用Demo
Javascript Regular Expression not working right
正则表达式:
([\,\s]*)(Ste |Ste\.)
在:
12 Watershore Circle
825 Stewart Street
820 N Lincoln Way
9235 Bella Vista Way
P.O. Box 4438
9936 Stone Oak Way
599 Hamstead Drive
3941 Park Drive Ste 20 #147
3609 Bradshaw RD,ste H #107
7909 Walerga Road, Ste. 112, PMB 108
选项我试过了我想要的:
([\,\s]*)(Ste |Ste\.)
([\,\s]+)(Ste |Ste\.)
(\,*[\W]Ste[\W]|\,*[\W]Ste\.[\W])
什么在我的网页直播结果似乎认为这意味着:
(\,*[\w]Ste[\w]|\,*[\w]Ste\.[\w])
或
正如你所看到的,我只是想分开“科技教育”(不区分大小写)从该行的其余部分。现场测试中发生的情况是,任何“Ste”(仍不区分大小写)的实例都会触发这些线路。上面给出的链接具有示例正则表达式,可以生成我从现场运行中获得的内容。
这个正则表达式的情况是在带有Razor(c#)视图页的MVC 4中的JavaScript代码中。再一次,我没有列出的正则表达式的其余部分正在寻找完全不同的措辞,可以正常工作。这只是这一块。
任何有关如何正确调试这个或任何解决方案的建议将不胜感激。谢谢。
你的正则表达式搜索'Ste [space]'或'Ste [任何字符] [空格]'。当你瞄准文字'.'时,你应该总是躲避''。',就像'\ .'。您可以将正则表达式缩短为'([\,\ s] *)(Ste \。?)',而无需使用这些正则表达式来查看代码。 – 2015-01-26 22:58:24
我的错字很好。我已经改变了这段时间的适当逃跑。不幸的是,这仍然造成两个案件的问题。如果我使用它,无论出于何种原因,它会分割像“Allister”这样的词,因为前面的空格和逗号是完全可选的。如果我将它改为'([\,\ s] +)(Ste \。?)'强制其中至少有一个在前面,它找不到任何匹配,即使它应该按照演示。 – TerriWiseden 2015-01-26 23:26:57
可能不会改变任何东西,但你不需要转义逗号。 – cbreezier 2015-01-26 23:55:11