単語にマッチさせる

単語を含むかどうか調べる

通常であればそのまま書けば終わりです.が,"\b"を使って境界を明示することで,より正確にマッチさせることができます.

(#/\bspec\b/ "Scheme spec")
  =>#<<regmatch> 0x5330a0>
(#/\bspec\b/ "Scheme specification")
  =>#f

正規表現\wにマッチする文字の連なり

"\w"を指定すると,

  • #/[[:alpha:]]/
  • #/[[:digit:]]/
  • #/_/

のいずれかを満たす文字がマッチします.なので,下の例での"2pen."の末尾にある"."はマッチしません.

(scan-match-string #/\w+/ "  This is\ta 2pen.")
  =>("This" "is" "a" "2pen")

アルファベットの連なり

前述の#/[[:alpha:]]/を使ってもよいでしょう.別の方法としては,#/[a-z]/を使うこともできます.
さらに#/[a-z]/iとすれば大文字小文字を区別せずにマッチさせることができます.

(scan-match-string #/[a-z]+/i "  This is\ta 2pen.")
  =>("This" "is" "a" "pen")

非空白文字の連なり

非空白文字にマッチさせたい場合には,空白文字"\s"の補集合である"\S"を使います.
これだと数字の"2"や末尾の"."も全てマッチします.

(scan-match-string #/\S+/ "  This is\ta 2pen.")
  =>("This" "is" "a" "2pen.")