我需要使用正则表达式在 ASPX 文件中查找属性值。
这意味着您无需担心 HTML 格式错误或任何与 HTML 相关的问题。
我需要找到特定属性(LocText)的值。我想得到引号内的内容。值内的任何 ASPX 标记(例如 <%=、<%#、<%$ 等)对于此属性没有意义,因此被视为其一部分。
我开始使用的正则表达式如下所示:
LocText="([^"]+)"
这很好用,第一组,即结果文本,获取除双引号之外的所有内容,双引号是不允许的(必须使用 " 代替)
但是 ASPX 文件允许使用单引号 - 然后必须应用第二个正则表达式。
LocText='([^']+)'
我可以使用这两个正则表达式,但我正在寻找一种连接它们的方法。
LocText=("([^"]+)"|'([^']+)')
这也有效,但似乎效率不高,因为它创建了不必要的组数。我认为这可以通过使用反向引用以某种方式完成,但我无法让它工作。
LocText=(["']{1})([^\1]+)\1
我认为通过这个,我将单引号/双引号保存到第一组,然后我告诉它读取不是第一组中找到的字符的任何内容。这再次被第一组的引用所包围。显然,我错了,它不是那样工作的。
有什么办法,如何将前两个表达式连接在一起,创建最少数量的组,其中一个组是我想要获得的属性的值?是否可以对单/双引号值使用反向引用,还是我完全误解了它们的含义?