【问题标题】:(win/linux) Text editor with good regex support(win/linux) 具有良好正则表达式支持的文本编辑器
【发布时间】:2011-09-01 01:54:24
【问题描述】:

我正在寻找具有良好正则表达式支持的 win7/ubuntu 中的文本编辑器。我尝试了一些具有部分支持或似乎使用自定义语法的程序,因此我正在寻找一个具有完全支持且没有/很少自定义样式正则表达式的程序。例如,我正在尝试对某些文本执行以下 exp:

^((?!test).)*$

查找没有单词 test in 的行。我已经在各种在线工具中对此进行了测试,我认为 reg exp 是正确的,但我找不到可以使用/信任的文本编辑器。

【问题讨论】:

  • 你不觉得(?!...)也是自定义样式吗?
  • 它可能是,但我的印象是它不是 - 我想这取决于你看的地方!是否有明确的正则表达式语法?

标签: regex linux window text-editor


【解决方案1】:

Vim 支持正则表达式,但模式语法有点不同:

/\(\(test\)\@!.\)*$

您可以通过打开verymagic设置使其不那么晦涩:

/\v((test)@!.)*$

阅读:help pattern

另请注意,此模式匹配 est 和紧跟在一行上最后一次出现 test 之后的字符,或者匹配不出现 test 的整行。这就是你想要的吗?

如果您不了解 vim,您可能应该从 vimtutor 开始。 Vim 并非为用户友好而设计,学习曲线陡峭。

【讨论】:

  • 其实我只是想匹配整个单词,而不是字符的子集。我以前用过 vi,但不是正则表达式部分 - 会看一下,但不要以为你知道我如何让它查找整个单词?
  • @Martyn:是的:.*\zs\<test\>.*\zs 标记匹配开始,\<\> 是单词分隔符。
【解决方案2】:

即使语法不同,Vim 也支持这种类型的否定前瞻。

看这里:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2020-09-29
    • 1970-01-01
    • 2011-11-02
    相关资源
    最近更新 更多