JavaScript正则如何获取-和空格之后的所有内容?
解决JavaScript正则提取“- 和空格”后内容的问题
嘿,我明白你的需求啦——要从字符串里精准提取出“- (减号加空格)”之后的所有内容,之前用(-\s).+的问题在于它把前面的- 也包含在匹配结果里了对吧?别急,给你两种简单有效的解决方案:
方案1:使用正向预查(Lookbehind)
JS支持正向预查断言,它能帮我们“跳过”前面的- ,直接匹配后面的内容,正则表达式如下:
/(?<=- ).+/
(?<=- ):这是正向预查,意思是“当前位置的前面必须是-(减号加空格)”,但这个部分不会被包含在最终的匹配结果里.+:匹配后面所有非换行的字符
代码示例:
const inputStr = "ABC - MMM"; const matchedResult = inputStr.match(/(?<=- ).+/)[0]; console.log(matchedResult); // 输出:MMM
方案2:使用捕获组
如果你的环境对正向预查支持有限(不过现代浏览器和Node.js都支持啦),可以用捕获组来提取目标内容,正则表达式:
/-\s(.+)/
-\s:匹配-(减号加空格)(.+):把后面的内容捕获到第一个分组里
代码示例:
const inputStr = "ABC - MMM"; const matchArray = inputStr.match(/-\s(.+)/); const targetContent = matchArray[1]; // 取第一个捕获组的内容 console.log(targetContent); // 输出:MMM
额外优化:兼容多个空格的情况
如果字符串里减号后面可能有多个空格(比如ABC - MMM),可以把正则里的\s改成\s+,匹配一个或多个空格:
- 正向预查版:
/(?<=- \s+).+/ - 捕获组版:
/-\s+(.+)/
这样不管减号后面是1个还是多个空格,都能准确提取后面的内容~
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

