Questions tagged «regular-expression»

正则表达式(通常简称为“ regex”)是以声明性语言编写的表达式,用于匹配字符串中的模式。

1
根据逗号分隔的单词排序
普通命令:sort可以根据列或虚拟列(\%c或\%v)对行进行排序,可以将更高级别的逻辑列用作排序键吗?在这种情况下,使用正则表达式看起来有点复杂(该列在行尾吗?),它看起来与sort实用程序(sork -k)相似,但是在Windows上无法使用此功能进行排序。Vim插件也将提供帮助。 例如,我想根据最后一列(用逗号分隔)对下面的2行进行排序。我的实际情况有更多的列和字符串模式。指定列定界符将大大简化它。 xxx,yyy,zzz,0x123 zzxz,xxxx,yyyy,0x121

6
删除n行跳过1行脚本
我想创建一个基本的Vim脚本,该脚本仅删除n行,跳过1行并重复直到文档末尾。我不在乎特定的匹配项,我只想删除该行。例如; 因此,我想对3ddj整个文档重复该命令。 Text I want to keep. Text I want to delete. Text I want to delete. Text I want to delete. Text I want to keep. Text I want to delete. Text I want to delete. Text I want to delete. Text I want to keep. Text I want …


3
替代搜索中的斜杠并替换长字符串
vim搜索和替换字符串是否有其他选择,而不必转义字符串中的每个特殊字符。 例如,如果我想匹配以下字符串并替换为某些内容 [ERROR] Login unsucessful 那我要做 :%s/\[ERROR\]\ Login\ unsucessful/something/g 对于包含很多特殊字符的复杂字符串,它变得更加难看和痛苦 我想做类似的事情 :%s/"[ERROR] Login unsucessful"/something/g 这样可以避免所有逃跑。有没有这样的功能?



2
在Vim中混合大小写正则表达式替换
我经常遇到这样的情况,即我的文件中包含很多混合大小写的文件。例如, CamelCase and camelCase 我正在寻找可以替换的Vim正则表达式, AnotherCase and anotherCase 现在,在视觉上选择线之后,我分两步执行此操作, :s/CamelCase/AnotherCase/g :s/camelCase/anotherCase/g 是否可以在一个替换步骤中完成此操作,还是应该研究其他选项(例如in中的函数).vimrc?

5
如何在文件的两个模式之间替换内容?
我有以下格式的文件: <common> fitnes=0 genetic=1 method=0 </common> <inputs> foo=bar bar=foo </inputs> <limits> balance=200.00 </limits> 我想删除<inputs>和之间的所有内容</inputs>(不包括自行设置模式),并用另一个文件(例如foo.txt)中的内容替换它。换句话说,带有foo=bar和的bar=foo行将被另一个内容替换。 可能与删除多行匹配的方式类似,例如: :g/<inputs/,/inputs>/d 但我不确定应该替换什么d以插入另一个文件的内容,但是我想保留匹配的模式。 类似的方法是删除html标签的内部内容,例如 :/<inputs>/norm vitd 但是我不知道如何将文件中的内容添加到其中。 理想情况下,我正在尝试找到一种衬板,因为它将成为另一种脚本的一部分。 我该如何实现?


1
正则表达式喜欢比赛中较短的比赛?(这比不贪婪更复杂)
我正在尝试创建用于在缓冲区内执行模糊搜索的脚本。主要思想是接受一些输入,然后.\{-}在每对字符之间插入,例如foo变为f.\{-}o.\{-}o。 这工作得很好,但是提出了很多不理想的比赛。我认为模糊搜索应该首先产生最短的匹配项。考虑以下示例: public void put() 对put(so,p.\{-}u.\{-}t)进行模糊搜索将匹配整个字符串public void put,但是该put匹配范围内的较短字符串会更有用。 非贪心运算符擅长查找较早结束的匹配项,但我需要同时可以偏向于较晚开始的匹配项的东西。从概念上讲,它在两个方向上都应该是非贪婪的。这可能吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.