正则表达式填充空白类型字符串

MMA*_*ams 5 javascript regex

我有一个已知开头和结尾的字符串,但我想只匹配未知中心.

例如,假设你知道你会有一些字符串,上面写着"我今天午餐吃了_______",你只想匹配空白.

这是我尝试过的:

^I had (.*) for lunch today$

哪个匹配整个字符串,以及组,即空白.

因此,当"我今天午餐吃披萨"时,它会产生两场比赛:
"我今天午餐吃披萨"和"披萨"

有没有办法只匹配空白?有没有办法获得"披萨"?或者至少将"披萨"作为第一场比赛?

rev*_*evo 4

您构建了一个捕获组;用它。

当您创建一个用括号括起来的正则表达式时,在您的情况下(.*?),您已经创建了一个捕获组。捕获组匹配的任何内容都将与完整匹配一起返回。

String.prototype.match()返回一个数组。它的第一个元素是完全匹配。所有后续元素都是捕获的结果。由于您只有一个捕获组,因此结果为matches[1]

var sentences = [
    "I had pizza for lunch today",
    "I had hamburger for lunch today",
    "I had coconut for lunch today",
    "I had nothing for lunch today"
];

sentences.map(function(sentence) {
   console.log(sentence + " -> " + sentence.match(/^I had (.*?) for lunch today$/)[1])
})
Run Code Online (Sandbox Code Playgroud)