为什么我的正则表达式不匹配空间
问题描述:
这里是我的正则表达式:为什么我的正则表达式不匹配空间
\b((?:Text|Header|Content))\=\"([^{].+?)\"
我想匹配这样的字符串:
文字= “我的文本” WIDTH = “50”
这是工作的罚款 - 我得到:
捕获组1:特XT捕捉组2:我的文本
但是,当遇到这样的文字:
文本=” “WIDTH =” 50"
我得到以下结果:
捕获组1:文本捕获组2:“宽度=
我在做什么错我的正则表达式?
编辑:有一个在我的正则表达式的更加复杂 - 我不包括匹配的文本行:
文本=“{结合试验}”
答
您正则表达式的这部分你的属性值(匹配引号内):
([^{].+?)
这被解释为比其它{
任何字符,接着是一个或多个字符。因此,您的正则表达式要求您的属性值至少包含两个字符,导致其在Text=" "
中的单字符空间失败。
要解决这个问题,你可以改变你的量词来匹配零个或多个字符,而不是:
([^{].*?)
优秀 - 感谢:) – 2014-11-01 22:38:44