文字列の中に「hoge」が含まれている場合、その開始位置を知るには


Tags: 文字列, cl-ppcre, ライブラリ

文字列の中に「hoge」が含まれている場合、その開始位置を知るには

文字列はシーケンスですので、searchが利用できます。

(search seq-s seq)
以下の指定ができます。
:from-end bool
:test function
:test-not function
:start1 position
:start2 position
:end1 position
:end2 position
:key function
(search "hoge" "foo bar hoge hage huge hege")
;=>8

CLiki:CL-PPCREを利用した例

scan書式
(scan regex target-string &key start end)
 => match-start, match-end, reg-starts, reg-ends
(ppcre:scan "(はちべえ)" "すけさんかくさんはちべえやしち")
;=> 8    ;マッチ開始位置
;   12   ;マッチ終了位置
;   #(8) ;マッチレジスタ開始位置 FIXME
;   #(12);マッチレジスタ終了位置