[英]Regex exclude last matched character
我有以下输入文本:
Teterboro US [TEB] - 20KM
我想得到以下输出:
Teterboro US
我正在使用以下表达式:
.*\[
但是我得到以下结果
Teterboro US [
我想删除最后一个空格和方括号“ [”
我正在使用JavaScript。
您可以将/.*?(?=\\s*\\[)/
与match
/.*?(?=\\s*\\[)/
使用; 即更改\\[
向前看(?=\\s*\\[)
,它声明以下模式但不会使用它:
var s = "Teterboro US [TEB] - 20KM"; console.log( s.match(/.*?(?=\\s*\\[)/) )
您可以尝试以下模式:
.*(?= \[)
这是一个positive lookahead assertion
,它的工作原理与您期望的一样。
另一个选择(值得一提的是,如果您对小组不熟悉的话)是仅捕获相关部分:
var s = "Teterboro US [TEB] - 20KM"; console.log( s.match(/(.*)\\[/)[1] )
正则表达式为:
(.*)\[
匹配后跟“ [”的所有内容,但“记住”括号中的部分。 稍后,您可以根据所使用的工具/语言访问匹配项。 在JavaScript中,您只需访问索引1。
您可以使用:\\ w + \\ s + \\ w +? 根据您的输入
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.