Javascript 标记后匹配短语

Javascript 标记后匹配短语,javascript,regex,Javascript,Regex,我有一个来自IRC聊天信息的字符串,看起来像这样 !地址!commandName这是一个命令响应 或者也可以像这样 !addcom-ul=mod!commandName这是一个命令响应 基本上我需要在第二个之后得到整个短语!commandName我在计算如何在后面的空格后立即开始时遇到了一些问题!commandName以获取剩余短语 我在一个正则表达式测试仪中开始使用它,并且能够选择第二个!commandName但是现在我需要弄清楚如何获取字符串的其余部分 !+\w+ 这很容易。将否定字符类

我有一个来自IRC聊天信息的字符串,看起来像这样

!地址!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这是我刚才注意到的:/。在模式中修复:)