我正在尝试编写一个正则表达式字符串,以匹配从IRC通道恢复的字符串。
该消息的格式为"!COMMAND parameters";到目前为止,系统构建的唯一命令是repeat。
我使用的正则表达式如下所示:
/![repeat] (.*?)/
当添加其他命令时,它将如下所示:
/![cmd1|cmd2|cmd3] (.*?)/
它似乎不匹配字符串中的正确内容。有没有人能对此提供任何意见?
看起来我需要添加一些基本的正则表达式。
()方括号返回数据,[]匹配但不返回。
切换到()也不起作用。
我正在编写的IRC程序具有动态数量的命令,到目前为止,我只添加了"repeat“,所以命令模式是"repeat”。如果我加上“说”,那就是“重复|说”。
发布于 2010-01-09 21:55:39
使用括号进行分组:
/!(cmd1|cmd2|cmd3) (.*)/
括号[…]
表示仅描述一组字符中的一个字符的字符类。
您也不应该使用非贪婪的.*
,因为.*?
的最小匹配是一个空字符串。
发布于 2010-01-09 21:55:26
发布于 2010-01-09 21:57:00
您使用了错误的括号
/!(cmd1|cmd2|cmd3) (.*)/
我不明白你的正则表达式中的?
是什么意思
https://stackoverflow.com/questions/2035100
复制