書式1: hasspace(, 長さ)
書式2: hasspacew(, 長さ)
文字列に空白類文字列が含まれていれば真を、含まれていなければ偽を返す。 空白類文字とは、ASCIIコードの0x20および0x09〜0x0dまでの事をいう。 それぞれ、半角スペース(0x20)、水平tab(0x09)、改行(0x0a)、垂直タブ(0x0b)、改ページ(0x0c)、復帰(0x0d)である。 マルチバイト文字における空白類文字を検索したければhasspacewを使うこと。
str項目に空白類文字列が含まれていれば真を返す。 id=1の行は半角スペース文字が含まれ、 id=2の行はtab文字が含まれ、 そしてid=4の行は改行文字が含まれているために真となっている。 ここで、id=3の行は全角スペースのため、検知できていない。
$ more dat1.csv id,str 1,a b 2,ab c 3,ab c 4, 5,"aa bb" $ mcal c='hasspace($s{str})' a=rsl i=dat1.csv o=rsl1.csv #END# kgcal a=rsl c=hasspace($s{str}) i=dat1.csv o=rsl1.csv $ more rsl1.csv id,str,rsl 1,a b,1 2,ab c,1 3,ab c,0 4,,0 5,"aa bb",1
hasspacew関数を使えば全角スペースも正しく検知できる。
$ mcal c='hasspacew($s{str})' a=rsl i=dat1.csv o=rsl2.csv #END# kgcal a=rsl c=hasspacew($s{str}) i=dat1.csv o=rsl2.csv $ more rsl2.csv id,str,rsl 1,a b,1 2,ab c,1 3,ab c,1 4,,0 5,"aa bb",1