Javascript 正则表达式排除最后匹配的字符
我有以下输入文本:Javascript 正则表达式排除最后匹配的字符,javascript,regex,Javascript,Regex,我有以下输入文本: Teterboro US [TEB] - 20KM 我希望获得以下输出: Teterboro US 我使用以下表达式: .*\[ 但我得到了以下结果 Teterboro US [ 我想去掉最后的空格和括号“[” 我正在使用JavaScript。您可以使用/.*(?=\s*\[)/和匹配;也就是说,更改\[以向前看(?=\s*\[),它断言以下模式,但不会使用它: var s=“Teterboro US[TEB]-20KM”; console.log( s、 匹配(/
Teterboro US [TEB] - 20KM
我希望获得以下输出:
Teterboro US
我使用以下表达式:
.*\[
但我得到了以下结果
Teterboro US [
我想去掉最后的空格和括号“[”
我正在使用JavaScript。您可以使用/.*(?=\s*\[)/
和匹配;也就是说,更改\[
以向前看(?=\s*\[)
,它断言以下模式,但不会使用它:
var s=“Teterboro US[TEB]-20KM”;
console.log(
s、 匹配(/.*(?=\s*\[)/)
)
您可以尝试以下模式:
.*(?= \[)
这是一种积极的前瞻断言,它的工作原理与您预期的一样。另一种选择(值得一提的是,如果您不熟悉组),就是只捕获相关部分:
var s=“Teterboro US[TEB]-20KM”;
console.log(
s、 匹配(/(.*)\[/)[1]
)
您可以使用:\w+\s+\w+?取决于您的输入您尝试了什么以及结果是什么?为什么不使用indexof/substring?如果您想要“积极的前瞻”,请更改为*(?=\[)
。您有多个选项。您可以使用[^[]+
而不使用g
标志,或者您可以使用*(?=\s*\[)
(我建议)var res=s.split(/\s*\[/)[0]