在Javascript中,我正在读取.txt文件以解析并放入HTML表格。那工作得非常好。在该信息中,存在地址线,其是第一行和第二行的组合(第二行是公寓号,空间号等)。它将那些罚款读成一行。
我想要做的是分解第一和第二地址线,以便它可以干净地送入数据库。为了打破它们,我写了一个正则表达式来捕捉我能想到的许多选项。他们中的大多数工作得很好。其中一个是拒绝正常工作,即使所有的小例子测试都说它应该有效。
以下是我正在尝试使用的正则表达式部分:Demo
使用正则表达式:
([\,\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])
或
([\,\s]*)(Ste|Ste\.)
正如您所看到的,我只是想将“Ste”(不区分大小写)与其余行分开。在实时测试中发生的事情是线条在“Ste”的任何实例上都是破坏的(仍然不区分大小写)。我上面给出的链接有一些示例正则表达式,可以生成我从实时运行中获得的内容。
这个正则表达式情况是在带有Razor(c#)视图页面的MVC 4中的javascript代码中。再一次,我在这里没有列出正在寻找完全不同的措辞的正则表达式的其余部分工作正常。这只是一件。
任何有关如何正确调试此解决方案或任何解决方案的建议将不胜感激。谢谢。
答案 0 :(得分:0)
所以,显然,Crazysheep,你的评论非常重要。它让我想到逃脱。
我在我的问题中忽略的是,在javascript中,我并没有直接将正则表达式写为正则表达式。由于行的长度,我把它写在一个字符串中,所以我可以将它分成多行,然后通过
将这个字符串转换成正则表达式
var re = new RegExp(reString,"gi");
由于这个小细节,所有斜杠转义都像String转义一样工作。这意味着每当我有\.
时,对于String,它正在执行文字.
而不是正则表达式转义。这适用于所有的逃生。
我之所以注意到这一点的原因是因为正片表达式中的这个片段看起来像这样:(\. \d+)
,它突然出现在某个东西,空间和D的每个瞬间.Ex:{{1 }或3 Drive
要解决这个问题,在字符串中,对于正则表达式中的a Dr.
,我已经放置了\.
,以便转义\\.
,以便它可以按原样运行正则表达式。
所以,谢谢Crazysheep,你得到的帮助超出了你的知识! XD