文字列の検索(instr) 『HSP3』


今回は文字列の検索をみていきます。指定した文字が含まれているかどうか調べるには「instr関数」を使います。

instr (p1,p2,p3)
 p1: 対象文字列
 p2: 検索開始位置(バイト)
 p3: 検索文字列
 
 
1
2
3
例1)
p1 = "ABCDEFG"
x = instr (p1,0,"C")
mes x
  (結果)
2

例1は、p1(ABCDEFG) の文字列から、0バイトの位置つまり最初から検索文字「C」のある位置を検索しています。Cは2バイト終わった位置にあるので結果は「2」になっています。

 
 
1
2
3
例2)
p1 = "ACDEFG"
x = instr (p1,0,"C")
mes x
  (結果)
3

例2は「漢」という文字を間にいれてみました。文字コードによりバイト数が異なるので今回は「漢」という文字は2バイトとします。「A」が1バイト、「漢」が2バイトなので「C」は3バイト終わった位置にあり結果は「3」になっています。文字数ではなくバイト数を求めていることに注意してください。

 
 
1
2
3
例3)
p1 = "ABCDECG"
x = instr (p1,0,"C")
mes x
  (結果)
2

例3は検索文字「C」が2つあります。開始位置から検索して、最初に該当した位置を求めています。

 
 
1
2
3
例4)
p1 = "ABCDECG"
x = instr (p1,4,"C")
mes x
  (結果)
1

例4は開始位置を「4」にしました。4バイトの終わった位置とは「E」になります。「E]より後で検索文字「C」がある位置を求めています。Eの次にあるので結果は「1」です。対象文字列の最初からでなく、開始位置からのバイト数を求めていることに注意してください。

 
 
1
2
3
例5)
p1 = "ABDEFG"
x = instr (p1,0,"C")
mes x
  (結果)
-1

例5は検索文字「C」が対象文字列にありません。ない場合は、「-1」が返ってきます。

 
 
1
2
3
例6)
p1 = "ABCDECG"
x = instr (p1,0,"CG")
mes x
  (結果)
5

例6は検索する文字を「CG」と2文字にしました。このように検索する文字は複数でも構いませんし、漢字など2バイト以上の文字を含んでも構いません。
 

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です