假设我有以下正则表达式,它与末尾带有分号的字符串相匹配:
\".+\";
它将匹配除空字符串之外的任何字符串,如下所示:
"";
我尝试使用这个:
\".+?\";
但这没有用。
我的问题是,我怎样才能使.+
的一部分,可选,因此用户不必在字符串中放置任何字符?
为了使.+
可选,你可以这样做:
\"(?:.+)?\";
(?:..)
被称为非捕获组 http://www.regular-expressions.info/refcapture.html。它只进行匹配操作,不会捕获任何内容。添加?
在非捕获组使整个非捕获组可选之后。
或者,你可以这样做:
\".*?\";
.*
会贪婪地匹配任何字符零次或多次。添加?
之后*
强制正则表达式引擎进行尽可能短的匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)