回答
替代做法:
- 查找,與正則表達式,在那裏有一個textarea元素的位置(字符串)。 合適的正則表達式爲:
(<textarea>(.*?)</textarea>)
- 除了你在#1上找到的地方,從任何地方刪除\ r \ n字符。
問題在於
你有關於如何完成這個的樣本? – 2009-12-02 20:28:08
我建立了一個可以找到某物的位置的正則表達式。 'Regexp.new('[\ s] * finder ..當然,它是愚蠢的,所以它不承認忽略評論和其他類似的東西。我說HTML解析器FTW雖然 –
Earlz
2009-12-02 20:37:23
這與我以前給出的this answer非常相似。
幸運的是,.NET具有balanced matching功能。
所以,你可以這樣做:
(<textarea[^>]*>[^<>]*(((?<Open><)[^<>]*)+((?<Close-Open>>)[^<>]*)+)*(?(Open)(?!))</textarea>)|\r\n
然後你就可以執行$ 1的替換值。
這是在行動: http://regexhero.net/tester/?id=292c5529-5fe8-42e9-8d72-d7ea9ab9e1fe
希望有所幫助。像這樣使用平衡匹配的好處是它足夠強大,可以處理HTML固有的嵌套標籤。
但是,它仍然不是100%可靠的。評論仍然可以拋棄它。當然,這也是一個非常複雜的正則表達式,如果您需要進行更改管理。所以你可能仍然想要使用一個html解析器。
即使嵌套匹配,正則表達式不是一個強大的「
你能提供更多關於你想要做什麼的信息嗎? – 2009-12-02 20:06:17
你在使用什麼平臺?使用HTML時,RegEx出現臭名昭着的不可靠。 – 2009-12-02 20:07:37
就在這裏來回應cottsak的評論。我想不出有什麼理由這樣做,並不意味着在其他地方出現更大的問題。 – aehiilrs 2009-12-02 20:32:17