到目前为止,我已经尝试了我能想到的每一种组合,而我却无法弄清楚/找到合适的组合。 我正在我正在开发的聊天室中匹配“/ me”命令。
RegEx:/^\/me (.*)(\|)(.*)?$/i
使用方法:
/me does something
/me does something else|Hello!
到目前为止,它与第二个/ me命令用法完全匹配(即,与“|”分隔符完全匹配),但不是第一个。
有人能指出我正确的方向吗?我在这里失去了理智。
我在匹配之后
"/me does something"
和"/me does something|Hello!"
同时删除“|”如果匹配
答案 0 :(得分:1)
/^\/me (.*?)(?:\|(.*))?$/i
第一行不匹配,因为它不包含|
您不能只让|
成为可选项,因为正则表达式是贪婪的(在?
之后添加+
而*
使它们非贪婪,{{1使一组非捕获)
如果您打算添加其他命令,那么如果您只匹配?:
并处理函数中的其余部分,它可能更具可读性