2010-08-31 115 views
0

我需要匹配使用reMatchNoCase("(listid)","listid car van listid dog cat listid house hotel")>的模式,所以listid是模式,並匹配,並再次下一個模式女巫是listid的一切。 所以,如果我轉儲複賽生病得到每一個結構開始listid和內匹配模式正則表達式coldfusion

這個內容是它應該是什麼樣子

  1. listid車麪包車

  2. listid狗貓

  3. listid家酒店

etc ....

當我使用reMatchNoCase("(listid)","listid car van listid dog cat listid house hotel")>它只會創建一個結構「listid」,沒有更像汽車範...我使用什麼正則表達式(listid)後得到的一切?

感謝

回答

2

你可以使用這個表達式

listid.*?(?=(listid|$)) 

什麼這個表達式所做的是找到一個「listid」後跟任意字符,直到下一個「listid」或「線($)的終結」。 ?=是尋找下一個「listid」的積極向前看,但不能使它成爲比賽的一部分。在.*?中的?避免了.*的貪婪行爲,並匹配緊接着的下一個先行字符串。

+0

救命不是這個詞!!!謝謝 – loo 2010-08-31 05:36:35

+0

我需要$ newline作什麼?如果我不想要它,它會被一個實際的新線弄亂嗎? – loo 2010-08-31 06:02:02

+1

由於最後沒有「listid」,因此我們必須展望未來捕捉最後一場比賽。因此使用'$'。如果你刪除它,它將不會與你的例子中的'listid house hotel'相匹配。 – Gopi 2010-08-31 06:16:51

2

這個正則表達式可能會做;我不知道coldfusion的細節,但它匹配你想要的:

listid.*?(?=$|\slistid) 
+0

救命不是這個詞!!!謝謝 – loo 2010-08-31 05:37:12