2015-06-13 101 views
1

我想匹配一個不以數字結尾的行(可能有拖尾的空格)我使用的是Emacs Regex(並且我可以使用其他正則表達式口味)。匹配一個不以數字結尾的行(可能有尾隨空格)

  1. 有什麼好的regexs來實現這一目標?

  2. 我們可以使用所有格量詞。(假設佔有慾量詞在Emacs正則表達式工作)

  3. 這裏有兩個企圖我的。

    [^[:digit:]] *^J 
    

    其中^J是換行字符,通過鍵入C-q C-j,將匹配

    concepts of logic 1 
    

    [^[:digit:]] *$ 
    

    不匹配

    concepts of logic 1 
    

    我不知道爲什麼會出現是不同的?

謝謝。

+0

這個'。*(?<![\ d \ s])\ s *(?:\ r?\ n | $)'? – sln

回答

0

所以,你想要匹配一個不以任何字符結尾的行(即,爲空),或者以不是數字而不是換行符的字符結束的行?

交互,您可以鍵入正則表達式來C-M-s,這種方式:

\(^$\|[^C-qC-j[:digit:]]\)$ 

當鍵入C-q C-j插入新行字符(C-j)交互。它看起來像這樣在ISEARCH,其中^J是單(新行)字符:

\(^$\|[^^J[:digit:]]\)$ 

從Lisp中,你會加倍反斜槓和使用\n來代表換行字符:

\\(^$\\|[^\n[:digit:]]\\)$ 

如果您希望允許尾隨空格,然後在$之前添加[ \t]*。例如,inteodyly:

\(^$\|[^C-qC-j[:digit:]]\)[ \t]*$