【发布时间】:2013-05-23 23:07:26
【问题描述】:
我正在清理一个 LaTeX 文件,我需要区分绝对值 |x|来自集合“这样”的符号,即 {x | x
对我来说,第一步是找到所有包含奇数个 | 的行。字符(即管道符号)。
原则上,我知道该怎么做,但是我尝试了以下正则表达式命令,但没有成功。
egrep '^[^\|]*\|([^\|]*\|[^\|]*\|)*[^\|]*$'
这个想法是匹配的行按顺序包含:
- 行开始
- 0 个或多个非竖线字符
- 正好是一个竖线字符
- 0 份或更多份正好包含 2 个管道的文本
- 行尾
但是,由于某种原因,这不起作用。 我在以下文件上运行命令:
\[
S = \{ x | x < 0}
y = |x|
\]
没有一行匹配。
我怀疑我在某个地方犯了一个愚蠢的错误,可能与转义管道字符有关, 但我不知道出了什么问题。
谁能告诉我如何解决这个问题,或者提供一个替代表达式来匹配包含奇数个管道字符的行?
【问题讨论】:
-
gsub()一对管道然后看看还有没有?
标签: regex sed awk grep pattern-matching