2014-02-28 96 views
0

我想用正則表達式啓動如下錨標記之前刪除一切從一個字符串:正則表達式:如何逃脫「#」

<A HREF="#" 

有人能告訴我,我怎麼也得修改以下因爲在那裏添加「#」時出現錯誤?

我正則表達式到目前爲止:

[\s\S]+?<A HREF=\W(.+?\)) 

的任何幫助,非常感謝,蒂姆

+1

請嘗試此操作:'\#'或'[#]'。 – eKek0

+3

不,你不需要在正則表達式中轉義'#'。 – Kent

+2

「我在添加」#「時出現錯誤 - 什麼錯誤? – Quentin

回答

2

在標準的正則表達式,#字符不需要轉義 - 它將匹配字面#

但是,如果你是在評論模式- 與根據您的環境(?x)/.../xCOMMENT_MODE啓用 - 然後#表明持續到行末​​註釋的開始。在這種情況下,匹配一個字面#要求它爲逃避爲\#以避免它開始評論。 (也是一樣的評論模式字面空格。)

然而,根據特定的錯誤 - 你應該在這個問題分享 - 這也可以通過在您的正則表達式嵌入源語言造成的。

例如,在一個CFML可以#用於指示嵌入到字符串表達式,並通過加倍逃跑了,即##


至於你要怎麼辦... 「...從一個字符串中刪除所有東西,然後再啓動一個錨標記<A HREF="#" ...」

您尚未提供足夠的信息來說明那裏 - 至少需要使用的語言,以及它是什麼/你爲什麼的背景正在做它/等

根據你想要做的實際任務和源文本是什麼,使用HTML解析器可能是一個更好的解決方案,因爲它會處理很多怪癖是一個寫在正則表達式中的痛苦(例如,考慮你需要做什麼才能使<a href = '#'工作)。

+0

非常感謝 - 這是很有幫助 ! – user2571510