我有这个正则表达式
(?<=token=)(.*?)(?=;)
?前面的令牌不可量化
我正在尝试在token=
之后排除字符串,也要在第一个;
之前排除字符串
string = [ 'nginx/1.15.2',
'Fri, 22 Feb 2019 22:39:19 GMT',
'application/json',
'76',
'close',
[ 'token=fCMNSX6y85W.7jOzwvpp8GQ; Secure; HttpOnly; expires=Wed, 21 Oct 2099 04:24:00 GMT' ],
'content-type,cache-control,pragma,x-request-id',
'true' ] '
如果我正在使用此正则表达式token=(.*?)(?=;)
我得到token=fCMNSX6y85W.7jOzwvpp8GQ
因此,我只需要从该字符串中输入fCMNSX6y85W.7jOzwvpp8GQ
答案 0 :(得分:0)
你快到了
token=(.*)(?=;)
将在捕获组 (.*)
中捕获令牌。根据您使用的命令/脚本语言,可以使用后向引用来获取捕获组值。
如果您使用的是JS
var re = /token=(.*)(?=;)/
var found = 'token=fCMNSX6y85W.7jOzwvpp8GQ; Secure'.match(re);
if (found) {
console.log(found[1])
}
注意found[1]
是比赛的第一个捕获组。
答案 1 :(得分:0)
第1步
查找
^string.+\n.+\n.+\n.+\n.+\n(.+)\n.+\n.+
替换
$1
第二步
查找
.*token=(.*?);.*
替换
$1\n
答案 2 :(得分:0)
您在模式token=(.*?)(?=;)
中的值位于第一个捕获组中。
您可以将该模式简化为token=([^;]+)
捕获在与分号不匹配的组中。
var s = `string = [ 'nginx/1.15.2',
'Fri, 22 Feb 2019 22:39:19 GMT',
'application/json',
'76',
'close',
[ 'token=fCMNSX6y85W.7jOzwvpp8GQ; Secure; HttpOnly; expires=Wed, 21 Oct 2099 04:24:00 GMT' ],
'content-type,cache-control,pragma,x-request-id',
'true' ] '`;
var pattern = /token=([^;]+)/;
console.log(s.match(pattern)[1]);