我想匹配一个不以数字结尾的行(可能是尾随空格。我正在使用Emacs Regex(我打开使用其他正则表达式)。
有什么好的正则表达式来实现这个目标?
我们可以使用占有量词吗? (假设占有量词在Emacs Regex中工作)
这是我的两次尝试。
[^[:digit:]] *^J
其中^J
是新行号,由C-q C-j
键入,将匹配
concepts of logic 1
但是
[^[:digit:]] *$
不符合
concepts of logic 1
我想知道为什么会有区别?
感谢。
答案 0 :(得分:0)
所以你想要匹配一个不以任何字符结尾的行(即,为空)或以不是数字而不是新行字符的字符结尾的行?
以交互方式,您可以通过以下方式键入正则表达式C-M-s
:
\(^$\|[^C-qC-j[:digit:]]\)$
键入C-q C-j
时,交互式地插入换行符char(C-j
)。在Isearch中看起来像这样,^J
是单个(换行符)char:
\(^$\|[^^J[:digit:]]\)$
从Lisp中,您可以将反斜杠加倍并使用\n
来表示换行符:
\\(^$\\|[^\n[:digit:]]\\)$
如果要允许尾随空格,请在[ \t]*
之前添加$
。例如,以交互方式:
\(^$\|[^C-qC-j[:digit:]]\)[ \t]*$