我需要使用正則表達式在ASPX文件中查找屬性值。C#中的ASPX屬性正則表達式解析#
這意味着您無需擔心格式錯誤的HTML或任何與HTML相關的問題。
我需要找到一個特定屬性(LocText)的值。我想知道引號內的內容。 任何ASPX標記,例如<%=,<%#,<%$等等,這個值對於這個屬性沒有意義,因此被認爲是它的一部分。
我開始看起來像這樣的正則表達式:
LocText="([^"]+)"
這個偉大的工程,第一組,這是結果的文本,得到的一切,除了雙引號,這是不允許有(& QUOT;必須改用)
但是,ASPX文件允許使用單引號 - 第二個正則表達式必須應用於此。
LocText='([^']+)'
我可以使用這兩個正則表達式,但我正在尋找一種方法來連接它們。
LocText=("([^"]+)"|'([^']+)')
這也適用,但似乎不是非常有效,因爲它創建不必要的組數。我認爲這可以通過使用反向引用以某種方式完成,但我無法實現它的工作。
LocText=(["']{1})([^\1]+)\1
我覺得這個,我的單/雙引號保存到第一組,然後我告訴它讀取任何不是第一組中發現的字符。這再次被第一組的報價所包含。很明顯,我錯了,它不是那樣工作的。
有沒有什麼辦法,如何將前兩個表達式連接在一起,只創建一個組的最小數量,其中一個組是我想要獲得的屬性的值?是否可以使用單引號值的反向引用,還是我完全誤解了它們的含義?
工作和漂亮的解決方案,萬分感謝:) – Mirek