Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式排除最后匹配的字符_Javascript_Regex - Fatal编程技术网

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]