这是我的正则表达式:
\b((?:Text|Header|Content))\=\"([^{].+?)\"
我正在尝试匹配这样的字符串:
Text =“My Text”Width =“50”
工作正常 - 我得到:
捕获组1:文本捕获组2:我的文本
但是当它遇到这个文本时:
Text =“”Width =“50”
我得到以下结果:
捕获组1:文本捕获组2:“宽度=
我的正则表达式出了什么问题?
编辑:我的正则表达式中增加了一个复杂功能 - 我排除了匹配的文字行:
Text =“{Binding Test}”
答案 0 :(得分:1)
正则表达式的这一部分与您的属性值(在引号内)匹配:
([^{].+?)
这被解释为{
以外的任何字符,后跟一个或多个字符。因此,正则表达式要求您的属性值至少包含两个字符,导致Text=" "
中的单字符空格失败。
要解决此问题,您可以将量词更改为匹配零个或多个字符:
([^{].*?)