Javascript 标记后匹配短语
我有一个来自IRC聊天信息的字符串,看起来像这样Javascript 标记后匹配短语,javascript,regex,Javascript,Regex,我有一个来自IRC聊天信息的字符串,看起来像这样 !地址!commandName这是一个命令响应 或者也可以像这样 !addcom-ul=mod!commandName这是一个命令响应 基本上我需要在第二个之后得到整个短语!commandName我在计算如何在后面的空格后立即开始时遇到了一些问题!commandName以获取剩余短语 我在一个正则表达式测试仪中开始使用它,并且能够选择第二个!commandName但是现在我需要弄清楚如何获取字符串的其余部分 !+\w+ 这很容易。将否定字符类
!地址!commandName这是一个命令响应
或者也可以像这样
!addcom-ul=mod!commandName这是一个命令响应
基本上我需要在第二个之后得到整个短语!commandName
我在计算如何在后面的空格后立即开始时遇到了一些问题!commandName
以获取剩余短语
我在一个正则表达式测试仪中开始使用它,并且能够选择第二个!commandName
但是现在我需要弄清楚如何获取字符串的其余部分
!+\w+
这很容易。将否定字符类与捕获组一起使用
![^ ]+\s*([^!]+)$
- 捕获组1将包含数据
匹配空格以外的任何内容。此模式与[^]+
后面的命令匹配代码>
否定字符类,匹配除([^!]+)
以外的任何字符代码>。此否定确保它选择第二个
!一些东西
将正则表达式锚定在字符串的末尾$
!+\w+
示例
"!addcom -ul=mod !commandName This is a command respons".match(/![^ ]+\s*([^!]+)$/)[1]
=> "This is a command respons"
"!addcom !commandName This is a command respons".match(/![^ ]+\s*([^!]+)$/)[1]
=> "This is a command respons"
这很容易。将否定字符类与捕获组一起使用
![^ ]+\s*([^!]+)$
- 捕获组1将包含数据
匹配空格以外的任何内容。此模式与[^]+
后面的命令匹配代码>
否定字符类,匹配除([^!]+)
以外的任何字符代码>。此否定确保它选择第二个
!一些东西
将正则表达式锚定在字符串的末尾$
!+\w+
示例
"!addcom -ul=mod !commandName This is a command respons".match(/![^ ]+\s*([^!]+)$/)[1]
=> "This is a command respons"
"!addcom !commandName This is a command respons".match(/![^ ]+\s*([^!]+)$/)[1]
=> "This is a command respons"
另一种选择是替换不需要的初始子字符串
*
标记将耗尽所有字符,直到最后一次出现代码>
另一种选择是替换不需要的初始子字符串
*
标记将耗尽所有字符,直到最后一次出现代码>
那呢\w+.*$
?还有吗响应后面的代码>?不,它应该只有两个,第二个应该始终是响应短语之前的最后一个。没有正则表达式,这太容易了。:string.substring(string.search(“!commandName”)+“!commandName.length,string.length)。trim()
怎么样\w+.*$
?还有吗代码>在响应中紧跟其后?不,它应该只有两个,第二个应该始终是响应短语之前的最后一个。如果没有正则表达式,这太容易了。:string.substring(string.search(“!commandName”)+“!commandName.length,string.length)。trim()
回复删除的注释,询问如何不包括空间。添加空格-![^]+([^!]+)$
@ChrisAnderson MSFT这是我刚才注意到的:/。固定在模式:)回复删除的评论,询问如何不包括空间。添加空格-![^]+([^!]+)$
@ChrisAnderson MSFT这是我刚才注意到的:/。在模式中修复:)