2017-01-10 19 views
2

正規表現^$^Jでは空行とそれに続く改行が一致しませんが、正規表現^^Jでは成功します。以前の正規表現で何が間違っていますか? $は、例えば正規表現の末尾に(正規表現で特定の場所に表示される、またはの最後であれば、通常は行の最後に空の文字列に一致するが、実際にはこれが唯一の真実である正規表現でEmacsの正規表現にマッチする行の末尾に改行が続く

答えて

4

$サブグループ、IIRC)。 $が「真ん中に」表示されている場合は、$という文字に一致します。同じことが^に当てはまります。例えば。 (string-match "a^b$c" "1a^b$c2")戻る1.

C-HIグラム(emacs) Regexpsドキュメントこの現象:

‘^’ 
    is a special character that matches the empty string, but only at 
    the beginning of a line in the text being matched. Otherwise it 
    fails to match anything. Thus, ‘^foo’ matches a ‘foo’ that occurs 
    at the beginning of a line. 

    For historical compatibility reasons, ‘^’ can be used with this 
    meaning only at the beginning of the regular expression, or after 
    ‘\(’ or ‘\|’. 

‘$’ 
    is similar to ‘^’ but matches only at the end of a line. Thus, 
    ‘x+$’ matches a string of one ‘x’ or more at the end of a line. 

    For historical compatibility reasons, ‘$’ can be used with this 
    meaning only at the end of the regular expression, or before ‘\)’ 
    or ‘\|’. 
関連する問題