如何使正则表达式的一部分可选?

伊森·比林(Ethan Bierlein)

假设我有以下正则表达式,该正则表达式将一个字符串与结尾的分号匹配:

\".+\";

它会匹配除空字符串以外的任何字符串,例如以下字符串:

"";

我尝试使用此:

\".+?\";

但这没有用。

我的问题是,如何使.+部分成为可选的,这样用户不必在字符串中放入任何字符?

阿维纳什·拉吉(Avinash Raj)

要使之成为.+可选,您可以执行以下操作:

\"(?:.+)?\";

(?:..)被称为非捕获组它仅执行匹配操作,不会捕获任何内容。?在非捕获组之后添加使得整个非捕获组都是可选的。

或者,您可以执行以下操作:

\".*?\";

.*将贪婪地匹配任何字符零次或多次。加力?后,*正则表达式引擎将进行尽可能短的匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章