我试图捕获引号之间的消息名称。它可以格式化为
("AddMessage",function(e){...})
或者即
("AddMessage","RemoveMessage",function(e){...})
我试图用正则表达式捕获消息的名称,但是在正则表达式上我试过
\("(?<name>\w+Message)"(,"(\w+Message)")*,function\([\w,]*\){.*?}\)
Regex101 tells me使群组递归以捕获多个邮件的名称。
重复捕获组仅捕获最后一次迭代。如果您对数据不感兴趣,请在重复组周围放置捕获组以捕获所有迭代或使用非捕获组。
我真的无法得到它,任何人都可以帮助我吗?
答案 0 :(得分:1)
您必须将重复的部分捕获到封闭的捕获组中。
在重复的部分添加命名的捕获组 ,并使用&#34;仅分组&#34; (没有捕获捕获组)内部:
\("(?<name>\w+Message)",?(?<messages>(?:"\w+Message",?)*),function\([\w,]*\){.*?}\)