我可以使用 gnu grep 来搜索不匹配的括号(及类似内容)吗?

我可以使用 gnu grep 来搜索不匹配的括号(及类似内容)吗?

我在文本编辑器 (emacs) 中用 MoinMoin Wiki 标记语言编写文本文件。如果我放错了某个特殊标签,我的整个页面就会因格式错误而变得混乱 — — 甚至更糟。我总是在打开格式元素的同一行中关闭它。

我可以用吗命令行工具找出一行中不匹配的 Wiki 标签?例如:

  • <<宏名(参数) >>
  • backtick代码backtick
  • ''双引号斜体 '' -- 可能很难
  • '''三重引号大胆的 '''-- 可能很难

我通常不嵌套标签。因此不存在“粗体代码”或“粗体斜体”。

答案1

一般情况下不会。grep 是面向行的工具,而正则表达式的功能不如上下文无关语法。如果您尝试写入:

grep -v '<<[^>]>>' <文件

你错过了一场对决:

<<好>> <<坏>d>

但你已经使用Emacs并且已包含一些检查:

M-x check-parens RET

如果你读http://moinmo.in/HelpOnParsers您会发现为 MoinMoin 编写解析器是一项艰巨的任务。

相关内容