如何从字符串中获取最后一个字母?

时间:2013-02-13 16:39:57

标签: javascript regex

我有以下字符串

str = '"Apples" AND "Bananas" OR Gala Me'

我希望最后得到'Gala Me'位。单词“AND”,“OR”或引号之间的任何内容都可以视为令牌。我有这个正则表达式。

regex = /AND|OR|"[^"]+"/g

它匹配我的所有令牌,但是我怎么能得到这个正则表达式的反面来获得不匹配的子串呢?

2 个答案:

答案 0 :(得分:4)

您可以使用令牌split()字符串:

var parts = str.split(/\s*(?:AND|OR|"[^"]+")\s*/)

// ["", "", "", "", "Gala Me"]

您可以选择按长度过滤它们:

var parts = str.split(/\s*(?:AND|OR|"[^"]+")\s*/).filter(function(s) {
    return s.length > 0;
});

// ["Gala Me"]

之后,您选择最后一个元素(如果适用):

if (parts.length) {
  console.log(parts.pop());
}

// "Gala Me"

答案 1 :(得分:0)

  

正则表达式,匹配最后一个'AND'或'OR'

之后的任何内容
.*(?:AND|OR)(.*)$
------------
 |
 |->matches greedily until the last AND or OR

第1组捕获您所需的字符串..