崇高的文本正则表达式仅在未转义时才有效



在崇高的文本 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.

相关内容

  • 没有找到相关文章

最新更新