#navi(マニュアル/関数)
* RE_SEARCH [#af057cbd]
** 形式 [#k12fa734]
> RE_SEARCH( '''string''' , '''regexp''' )
** 機能 [#p3197e91]
- 処理対象文字列内に正規表現とマッチする部分があるかどうかを調べます。
- 結果の詳細は RE_GETSTR , RE_GETPOS , RE_GETLEN で取得します。
** 引数 [#u9befa2a]
:string|対象の文字列。
:regexp|正規表現。
** 返り値 [#jf768ad8]
- マッチする部分がある場合、1
- それ以外の場合、0
** 関連 [#j6dd45d1]
- [[マニュアル/関数/RE_MATCH]]
- [[マニュアル/関数/RE_GETSTR]]
- [[マニュアル/関数/RE_GETPOS]]
- [[マニュアル/関数/RE_GETLEN]]
** バージョン [#nf7ad37b]
- YAYA:初期から利用可能
** 例 [#k4dce486]
例えばinputboxを使って会話っぽいものを作りたいなら
\![open,inputbox,OnTalk,0]
OnTalk{
if (RE_SEARCH(reference[0], 'こんに?ち[はわ]|今日[はわ]|コンニチ[ハワ]')){
"こんにちは、%(username)"
}
}
これで"こんにちは、こんにちわ、こんちは、こんちわ、今日は、今日わ、コンニチハ、コンニチワ"のどれかが文中に入っていた時(たとえば"こんにちはー、ほにゃらら"など)、"こんにちは、%(username)"が返される。
これで"こんにちは", "こんにちわ", "こんちは", "こんちわ", "今日は", "今日わ", "コンニチハ", "コンニチワ"のどれかが文中に入っていた時(例えば"こんにちはー、ほにゃらら"など)、"こんにちは、%(username)"が返される。
tipsとして
if (RE_SEARCH(reference[0], '(?|\?)$')){
"そうかもしれない"
}
みたいにすると文末に?か?があるなら常に"そうかもしれない"と返すので、会話が成立しやすい(返答パターンは増やすべきだけど)
みたいにすると文末に?か?があるなら(例えば"元気?", "ハンガーって美味しいよね?"など)常に"そうかもしれない"と返すので、会話が成立しやすい(返答パターンは増やすべきだけど)
#navi(マニュアル/関数)