JavaScript RegEx新手 - 从三字串中选择中间字

时间:2014-10-08 02:47:30

标签: javascript regex

我是JavaScript的RegExp库的新手,需要帮助从三个字符串中选择中间词。
例如: Saturday October 1会返回October

我的(微弱)尝试是\s.*\s,但这返回(space)October(space)。但是,我需要在匹配中省略空格。

感谢任何帮助!

由于

4 个答案:

答案 0 :(得分:2)

您只需使用capturing group,然后引用群组索引#1即可获得匹配结果。

var r = 'Saturday October 1'.match(/\s(.*)\s/);
if (r)
    console.log(r[1]); //=> "October"

或者如评论中所述,修剪匹配结果。

var r = 'Saturday October 1'.match(/\s.*\s/);
if (r)
    console.log(r[0].trim()); //=> "October"

但在这种情况下,不会split字符串会更容易吗?

var r = 'Saturday October 1'.split(' ')[1];
console.log(r); //=> "October"

答案 1 :(得分:0)

我认为最简单的解决方案是修剪返回值或

var match = 'Saturday October 1'.match(/\s(.*)\s/); 
var text = match && match[1]

答案 2 :(得分:0)

使用第一个匹配组准确显示中间词

\s+(\b.*)\s+

答案 3 :(得分:0)

^.*?\s(\w+)

试试这个。抓住捕获。参见演示。

http://regex101.com/r/hQ1rP0/44