- Title
- 正規表現の表記
- Type
- Tips
- Section
- 検索・正規表現
正規表現の表記方法です。以下は
Toy's xyzzy memo - Data Library -
http://www.carabiner-systems.com/xyzzy/data.html)
からの引用です。
--- 引用 ---
正規表現
regular expression 1999/12/29 Written by Tetsuya Kamei [xyzzy:03768]
^ 行頭にマッチ
$ 行末にマッチ
. 改行文字を除く任意の 1 文字にマッチ
[...] 文字クラスのどれか 1 文字にマッチ
[^...] 文字クラスの補集合のどれか 1 文字にマッチ
* 直前の正規表現の 0 回以上の繰り返しにマッチ (={0,})
+ 直前の正規表現の 1 回以上の繰り返しにマッチ (={1,})
? 直前の正規表現の 0 回か 1 回の繰り返しにマッチ (={0,1})
\{M,N\} 直前の正規表現の M 回以上 N 回以下の繰り返しにマッチ
\{M,\} 直前の正規表現の M 回以上の繰り返しにマッチ
\{,N\} 直前の正規表現の N 回以下の繰り返しにマッチ
\{N\} 直前の正規表現の N 回の繰り返しにマッチ
\( \) グルーピング
\| 選択
\1 〜 \9 後方参照
\< 単語の開始にマッチ
\> 単語の終了にマッチ
\b 単語の境界にマッチ
\B 単語の境界以外にマッチ
\w 英数字にマッチ
\W 英数字以外にマッチ
\sc シンタックスが c の 1 文字にマッチ
\Sc シンタックスが c 以外の 1 文字にマッチ
\` バッファの先頭にマッチ
\' バッファの最後にマッチ
\ メタキャラクタのエスケープ
[たぶん xyzzy 0.2.1.186 から]
*? 直前の正規表現の 0 回以上の最短の繰り返しにマッチ
+? 直前の正規表現の 1 回以上の最短の繰り返しにマッチ
?? 直前の正規表現の 0 回か 1 回の最短の繰り返しにマッチ
(let ((str "aAaaa"))
(string-match "Aa?" str)
(format t "[Aa? ] ... ~S: ~D-~D~%"
(match-string 0) (match-beginning 0) (match-end 0))
(string-match "Aa??" str)
(format t "[Aa??] ... ~S: ~D-~D~%"
(match-string 0) (match-beginning 0) (match-end 0)))
->[Aa? ] ... "Aa": 1-3
[Aa??] ... "A": 1-2
\{M,N\}? 直前の正規表現の M 回以上 N 回以下の最短の繰り返しにマッチ
\{M,\}? 直前の正規表現の M 回以上の最短の繰り返しにマッチ
\{,N\}? 直前の正規表現の N 回以下の最短の繰り返しにマッチ
\(?:regexp\)
部分正規表現のグルーピングを行うが,後方参照を行わない
(すなわち\1,\2とかを使って参照できない,と)
[さらに xyzzy 0.2.2.202 から]
\_< シンボルの開始位置にマッチ
\_> シンボルの終了位置にマッチ
\_b シンボルの境界にマッチ
\_B シンボルの境界以外にマッチ
\_s シンボル文字にマッチ
\_S シンボル文字以外にマッチ
- Seealso
- Emacs 互換ではない正規表現は結構あるのでしょうか?