Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
String 如何在特定列之间找到匹配项?_String_Search_Vim_Substring - Fatal编程技术网

String 如何在特定列之间找到匹配项?

String 如何在特定列之间找到匹配项?,string,search,vim,substring,String,Search,Vim,Substring,文本文件中的第7行示例: This is an example 这是我的搜索代码: /example\|an 现在,我想在从第1列到第11列的子字符串中捕获匹配项: let myhits = [] | 7s/\%>0cexample\|an\%<12c/\=add(myhits,submatch(0))[-1]/ge | echo myhits 但发现: myhits = ["an", "example"] 我做错了什么? 如何在子字符串中捕获匹配?所有由\\\分隔的对象都

文本文件中的第7行示例:

This is an example
这是我的搜索代码:

/example\|an
现在,我想在从第1列到第11列的子字符串中捕获匹配项:

let myhits = [] | 7s/\%>0cexample\|an\%<12c/\=add(myhits,submatch(0))[-1]/ge | echo myhits
但发现:

myhits = ["an", "example"] 
我做错了什么?

如何在子字符串中捕获匹配?

所有由
\\\
分隔的对象都是自己的分支,因此在表达式中,左分支不检查结束列,右分支不检查结束列。您可以使用分组仅对关键字进行分支:
\%>0c\(示例\|an\)\%由
\\\
分隔的所有内容都是它自己的分支,因此在表达式中,左分支不检查结束列,右分支不检查结束列。您可以使用分组仅对关键字进行分支:
\%>0c\(示例\\124; an\)\%谢谢!不幸的是,在我的情况下,并不总是可以对我的搜索进行分组。捕获子字符串,然后只在子字符串中进行搜索是一种解决方案吗?是的,这听起来是个好主意。您可以使用
let myLine=getline(7)[0:10]
,然后为每个模式编写类似于伪代码
while(length(myLine)>0{call substitute(pattern),“,myLine),并在myLine更改时添加到myhits}
。我一时想不出vim语法,但是
帮助函数列表
帮助替换
可能会有帮助。谢谢!不幸的是,在我的情况下,并不总是可以对我的搜索进行分组。捕获子字符串,然后只在子字符串中进行搜索是一种解决方案吗?是的,这听起来是个好主意。您可以使用
let myLine=getline(7)[0:10]
,然后为每个模式编写类似于伪代码
while(length(myLine)>0{call substitute(pattern),“,myLine),并在myLine更改时添加到myhits}
。我一时想不出vim语法,但是
帮助函数列表
帮助替换
可能会有所帮助。
myhits = ["an", "example"]