命令中匹配的选项

宇宙

我实际上是在创建一个不和谐的机器人,并且试图匹配一些命令选项,但是在方括号之间获取值时遇到问题。(如果有)

我已经尝试添加一个?来匹配其中一个或多个,但是它不起作用,正在搜索如何在两个字符之间进行匹配,但是没有找到任何帮助。

这是到目前为止的模式:https : //regexr.com/4icgi,此处为文本:/[+|-](.+)(\[(.+)\])?/g

我希望它从这样的选项中执行操作:+user[someRandomPeople]提取参数user和值someRandomPeople,如果没有方括号,则只会提取参数。

维克多·史翠比维

您可以使用

^[+-](.*?)(?:\[(.*?)\])?$

或者,如果[...]末尾的可选子字符串中没有方括号,则:

^[+-](.*?)(?:\[([^\][]*)\])?$

或者,如果在不同的行中搜索匹配项:

^[+-](.*?)(?:\[([^\][\r\n]*)\])?$

请参阅regex演示regex图

在此处输入图片说明

细节

  • ^ -字符串开始
  • [+-]-+-(请注意,|方括号内的|字符与文字字符匹配
  • (.*?) -第1组:除换行符以外的任何0个或更多字符,应尽可能少
  • (?:\[(.*?)\])? -的可选顺序
    • \[-一个[字符
    • (.*?)-第2组:比换行符字符以外的任何0以上字符尽可能少的([^\][]*匹配0个或更多个字符以外[]
    • \]-一个]字符
  • $ -字符串结尾。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章