JavaScript 正则表达式匹配问题:如何获取所有符合条件的子字符串?
问题出在正则表达式的匹配规则上。正则表达式[^=]+==[^=]+表示匹配除了等号以外的任意字符至少一次,然后是两个等号,然后再是除了等号以外的任意字符至少一次。但在给定的字符串中,只有第一个匹配满足这个规则,后面的匹配都不满足。\n\n要解决这个问题,可以使用正则表达式[^=]+==[^=]+的全局匹配模式,即在正则表达式最后加上g标志。这样可以匹配到所有满足规则的子串。修改代码如下:\n\njavascript\nlet str = \"我是==谁===第二章 哈哈===你不会送了吧,男丁?===第三章 流===你是她女儿吗?是的===第四章 校长===终究敌不过=他们啊。\";\nlet regex = /[^=]+==[^=]+/g;\nlet matches = str.match(regex);\nconsole.log(matches);\n\n\n运行结果为:\n\n\n["我是==谁", "第二章 哈哈", "你不会送了吧,男丁?", "第三章 流", "你是她女儿吗?是的", "第四章 校长", "终究敌不过=他们啊"]\n\n\n可以看到,现在匹配到了所有满足规则的子串。
原文地址: https://www.cveoy.top/t/topic/puyy 著作权归作者所有。请勿转载和采集!