正規表現が文字列の先頭・末尾にマッチするか調べる

正規表現が文字列の先頭・末尾にマッチするか調べる

正直,正規表現ネタなので言語はあんまり関係ないのですが...

先頭にマッチするか調べる

"^"で先頭を表します."\A"はまだサポートされていないようです.
マッチした際,明示的に#tを得たい場合にはbooleanを使うとよいでしょう.

(#/^a/ "aiueo")
  =>#<<regmatch> 0x526340>
(#/^o/ "aiueo")
  =>#f
(boolean (#/^あ/ "あいうえお"))
  =>#t
(#/\Aa/ "aiueo")
  =>#f ; マッチしない!

末尾にマッチするか調べる

同様に"$"で末尾を表します.こちらも"\Z"はサポートされていないようです.

(#/o$/ "aiueo")
  =>#<<regmatch> 0x533de0>
(#/z$/ "aiueo")
  =>#f
(boolean (#/お$/ "あいうえお"))
  =>#t
(#/o\Z/ "aiueo")
  =>#f ; マッチしない!

また,末尾が何文字目だったか知りたい場合はrxmatch-startを使えば分かります.

(rxmatch-start (#/o$/ "aiueo"))
  =>4
(rxmatch-start (#/z$/ "aiueo"))
  =>#f
(rxmatch-start (#/お$/ "あいうえお"))
  =>4