在崇高的文本 3 中,为什么这与 3 个条目匹配
$http.post('/((?!view|list).)[^']*'
但这与任何内容都不匹配
$http.post('/((?!view|list).)[^']*'
在以下数据集上。
$http.post('/listSets' ,$scope.updateAccessKey({type: 2}), {
$http.post('/viewedMessage' , viewedMessagePayload, {
$http.post('/listRelatedContent' ,
$http.post('/viewedSet' , payLoad , {
$http.post('/viewDiscussion' , payLoad , {
$http.post('/editMessage' , $scope.updateAccessKey(payLoad), {
$http.post('/addComment' , $scope.updateAccessKey(payLoad), {
$http.post('/createStudySet' , createSetP
我知道转义撇号是可选的,但为什么它会破坏崇高文本正则表达式搜索?
根据有关搜索和替换的文档,Sublime 内部使用 Boost PCRE 引擎为搜索面板中的正则表达式提供支持,根据 Boost Regex 文档,构造'
是z
的同义词,仅在缓冲区末尾匹配。
因此,以'
结尾的正则表达式版本与任何内容都不匹配,因为根据定义,它只匹配看起来像$http.post
行的内容,该行出现在文件的最后一行中,并且以 URL 字符串结束文件仍未终止。
由于正则表达式中'
之前的*
,它将匹配此类行后面的任何文本量,只要它不包含单个引号(由于字符类中的排除
(。例如,给定以下输入,您的正则表达式将匹配最后一个$http.post
,包括它之后直到缓冲区末尾的所有内容。
$http.post('/listSets' ,$scope.updateAccessKey({type: 2}), {
$http.post('/viewedMessage' , viewedMessagePayload, {
$http.post('/listRelatedContent' ,
$http.post('/viewedSet' , payLoad , {
$http.post('/viewDiscussion' , payLoad , {
$http.post('/editMessage' , $scope.updateAccessKey(payLoad), {
$http.post('/addComment' , $scope.updateAccessKey(payLoad), {
$http.post('/createStudySet , $scope.updateAccessKey(payLoad), {
And then some other non code stuff here.
Basically anything but a single quote.