我正在尝试编写一个匹配人类可读引用值的正则表达式。例如,XML 属性。我遇到的问题是,如果您考虑属性的结束引号和后续属性的开始引号,则引用区域之间的数据实际上也被引用。这是我到目前为止的表达:
(?<=\")(?(?!\s+\")[^\"]+)(?=\")
我试图用简单的英语表达的是:一个引号(不要捕获它),如果后面没有只是以另一个引号结尾的空格,则匹配任何不是一个引号后跟另一个引号(不捕获最后一个引号)的内容。
这是我的示例数据:
<computer name = "printserver" model = "1000ZS" />
正则表达式产生 3 个匹配项:
- 打印服务器
- 型号 =
- 1000ZS
我认为,如果我能找到一种方法来告诉正则表达式引擎跳过所有其他事件,我就会拥有它。
这是另一个示例数据集,有点像 QML 类属性:
field1: "value1" field2: "value2" field3: "value3"
我可以“看到”引用的数据,但是通过正则表达式提取它正在击败我:-)
我在我的项目中使用 .NET 4.5 System.Text.RegularExpressions 框架。我不是针对特定的标记,如 XML、JSON、QML 等,而是在寻找一个通用的正则表达式,它只会抓取引用的值,类似于我们将数据解释为人类的方式......
有什么建议么?谢谢!