在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