我有一大堆在他們的信息的一些文本文件。他們中的大多數句子都以特定的信息列表開頭。現在我可以使用其他正則表達式代碼(用於日期,網址,電子郵件等)提取一些項目,以便我使用它們。但對於其他信息,我不知道從哪裏開始......。正則表達式 - 句開始
例如:
ITEM_LIST_1 = xxxx .
ITEM_LIST_2 = xxxx .
ITEM_LIST_3 = xxxx .
....
我希望創建一個正則表達式,將提取XXXX的(刑罰)的具體項目。
THX所有
我有一大堆在他們的信息的一些文本文件。他們中的大多數句子都以特定的信息列表開頭。現在我可以使用其他正則表達式代碼(用於日期,網址,電子郵件等)提取一些項目,以便我使用它們。但對於其他信息,我不知道從哪裏開始......。正則表達式 - 句開始
例如:
ITEM_LIST_1 = xxxx .
ITEM_LIST_2 = xxxx .
ITEM_LIST_3 = xxxx .
....
我希望創建一個正則表達式,將提取XXXX的(刑罰)的具體項目。
THX所有
(?<=ITEM_LIST_\d+ =).*(?= \.)
應與您的示例xxxx
以上。不過,它需要一個允許任意長度查找的正則表達式引擎。大多數不(.NET)。
另一種選擇是
ITEM_LIST_\d+\s*=\s*(.*)\s*\.
,並使用匹配號碼1.這不需要環視,但比賽比你更需要和使用捕獲組來選擇總比賽的一個子。
兩個可能是微調,以你的問題具有更好的性能和更低的匹配做錯事的機會,如果我們知道您的xxxx
是什麼。
編輯:如果項目都在一個單一的線,那麼上述正則表達式將失敗(因爲它是貪婪):
PS> [regex]::matches('Item_List_01 = Chapter1 overview, Who''s who, Chapter2 How to. Item_List_02 = Continue of Chapter2, Problems.', 'Item_List_\d+\s*=\s*(.*)\.') | select groups
Groups
------
{Item_List_01 = Chapter1 overview, Who's who, Chapter2 How to. Item_List_02 = Continue of Chapter2, Problems., Chapt...
您可以通過它懶修復:
Item_List_\d+\s*=\s*(.*?)\.
這不工作,則:
PS> [regex]::matches('Item_List_01 = Chapter1 overview, Who''s who, Chapter2 How to. Item_List_02 = Continue of Chapter2, Problems.', 'Item_List_\d+\s*=\s*(.*?)\.') | select groups
Groups
------
{Item_List_01 = Chapter1 overview, Who's who, Chapter2 How to., Chapter1 overview, Who's who, Chapter2 How to}
{Item_List_02 = Continue of Chapter2, Problems., Continue of Chapter2, Problems}
但是,它會˚F AIL如果再物品有一個全停在他們:
PS> [regex]::matches('Item_List_01 = Foo. Bar. Item_List_02 = Baz, gak.', 'Item_List_\d+\s*=\s*(.*?)\.') | select groups
Groups
------
{Item_List_01 = Foo., Foo}
{Item_List_02 = Baz, gak., Baz, gak}
這可以通過(再)將在先行來解決這確保了無論是行/字符串的結束或其它物品如下:
Item_List_\d+ = (.*?)\.(?=$| Item_List_\d)
(關於空間,\s*
等:我已經在改變整個空間的解決方案處理了幾次一點不馬虎這裏。你應該知道你期望的數據並相應地調整正則表達式。您還在你的問題和意見變化的ITEM_LIST
/Item_List
的情況。你應該是一致的,太。)
例如:Item_List_01 = Chapter1概述,Who's who,Chapter2如何。 Item_List_02 =繼續第2章,問題。 etc ... – 2012-04-04 06:00:55
它總是ITEM_LIST ...從我身邊的錯字。正則表達式將用於一個小型的java程序。以上所有Thx。 – 2012-04-04 06:54:06
什麼樣的正則表達式,Java的正則表達式的? – cctan 2012-04-04 05:51:17
是java的正則表達式。 – 2012-04-04 05:53:37
'^ [^ \ s] + =([^ \ s] +)''? – 2012-04-04 05:54:10