我实际上是在创建一个不和谐的机器人,并且试图匹配一些命令选项,但是在方括号之间获取值时遇到问题。(如果有)
我已经尝试添加一个?
来匹配其中一个或多个,但是它不起作用,正在搜索如何在两个字符之间进行匹配,但是没有找到任何帮助。
这是到目前为止的模式:https : //regexr.com/4icgi,此处为文本:/[+|-](.+)(\[(.+)\])?/g
我希望它从这样的选项中执行操作:+user[someRandomPeople]
提取参数user
和值someRandomPeople
,如果没有方括号,则只会提取参数。
您可以使用
^[+-](.*?)(?:\[(.*?)\])?$
或者,如果[...]
末尾的可选子字符串中没有方括号,则:
^[+-](.*?)(?:\[([^\][]*)\])?$
或者,如果在不同的行中搜索匹配项:
^[+-](.*?)(?:\[([^\][\r\n]*)\])?$
细节
^
-字符串开始[+-]
-+
或-
(请注意,|
方括号内的|
字符与文字字符匹配)(.*?)
-第1组:除换行符以外的任何0个或更多字符,应尽可能少(?:\[(.*?)\])?
-的可选顺序
\[
-一个[
字符(.*?)
-第2组:比换行符字符以外的任何0以上字符尽可能少的([^\][]*
匹配0个或更多个字符以外[
和]
)\]
-一个]
字符$
-字符串结尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句