正则表达式排除最后匹配的charachter

时间:2017-09-27 14:07:40

标签: javascript regex

我有以下输入文字:

Teterboro US [TEB] - 20KM

我想得到以下输出:

Teterboro US

我使用以下表达式:

.*\[

但我得到以下结果

Teterboro US [

我想摆脱最后一个空格和括号“[”

我正在使用JavaScript。

4 个答案:

答案 0 :(得分:1)

您可以将we are no time we are /.*?(?=\s*\[)/一起使用;即更改match以向前看\[,它会断言以下模式,但不会消耗它:



(?=\s*\[)




答案 1 :(得分:1)

你可以尝试这种模式:

.*(?= \[)

它是positive lookahead assertion,它的效果与您期望的一样。

答案 2 :(得分:0)

另一个选择(值得一提的是,如果你不熟悉群体)只会抓住相关部分:



var s = "Teterboro US [TEB] - 20KM";
console.log(
  s.match(/(.*)\[/)[1]
)




正则表达式是:

(.*)\[

匹配任何后跟" [",但它"记住"括号括起来的部分。之后,您可以根据您使用的工具/语言访问匹配项。在JavaScript中,您只需访问索引1。

答案 3 :(得分:0)

您可以使用:\ w + \ s + \ w +?取决于您的输入