有谁知道如何选择文字" 有些词和&事物(lp4)"下面?
我正在尝试选择两个空格\s
之间的[某事],并且在选择中有一个或多个+
字\b
var string = ' \n Some words & things (lp4) ';
var regexp = /\s[\b*]\s/i;
var selection = string.match(regexp);
console.log(selection);

答案 0 :(得分:2)
我不清楚你想要实现的目标。所以我将介绍两种可能性。
如果您基本上只想要删除前导和尾随空格字符,那么trim()
就足够了:
var string = ' \n Some words & things (lp4) ';
var selection = string.trim();
console.log(selection);
这将记录
Some words & things (lp4)
到控制台。
在这种情况下,正则表达式确实很有帮助。
var string = ' \n Some words & things (lp4) ';
var regexp = /\s+(\S+(\s\S+)*)\s+/i;
var match = string.match(regexp);
if (match === null) {
console.log('No match was found!');
} else {
console.log('Match (words only) is: ' + match[1]);
var replaced = string.replace(match[1], 'New replacement text');
console.log('Replaced value: "' + replaced + '"');
}
此处的正则表达式为\s+(\S+(\s\S+)*)\s+
。让我把它分解成碎片:
\s+
:查找空格字符(\s
),并允许一个或多个出现(+
) - 即开头的空白\S+
:查找非空白字符(\S
),并允许零次或多次出现(+
) - 这基本上只是一个单词(\s\S+)*
:查找单个空格字符(\s
),后跟一个或多个非空白字符(+
)的出现(\S
),并允许整件事零次或多次 - 这些基本上都是在第一个单词之后的所有单词()
用于捕获一个组中的所有单词 - 这将是比赛中的第一个组\s+
:查找空白字符(\s
),并允许一个或多个出现(+
) - 即最后的空白最后,此代码的输出将是:
Match (words only) is: Some words & things (lp4)
Replaced value: "
New replacement text "
也就是说,空格将保留在输出中,如双引号的位置所示。
答案 1 :(得分:1)
实际上,您尝试删除多个空格:
var string = ' \n Some words & things (lp4) ';
var regexp = /\s{2,}/gm;
console.log(string.replace(regexp, ' ').trim());