2016-02-15 46 views
0

我有一些代碼逐行讀取文件。它需要匹配每一行具有以下名稱標籤:正則表達式只包含一個匹配,如果它確切

/根| classcod |日期|一年|代理|辦公| popaddress |位置|拉鍊| NAICS |聯繫我們/

我的代碼生成一個樹從頁面上的數據獲取標籤,然後通過樹進行映射以將節點名稱與上面的列表進行比較。我需要將名稱與其中的一個完全匹配,或者完全排除它。

我遇到的問題是,當其中一個標籤名稱包含列表中任何名稱的一部分時,就會添加該名稱。例如:

respdate 
date 

該代碼包含'respdate'以及'date'的標籤。我該如何使regex排除respdate,因爲它完全不符合「date」?

回答

1

一個選項是使用word boundaries metacharacter, \b

集團所有的非捕獲組你的話,與周圍分界字組兩側:

我對SO曾經得到
\b(?:root|date|year)\b 
+0

最快最真棒答案。你達人,喬希。謝謝。 –

+1

和最重複的之一。 –

相關問題