掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
like演算子について (ID:141500)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>> If "\" Like "[" & astrSql & "]" Then >> astrSql = Replace(astrSql, "\", "¥") >> End If > >これは、astrSql が『\』1 文字の時にしか True にならないので、 > If astrSql = "\" Then > astrSql = "¥" > End If >と同義になってしまいますが、それで良いのでしょうか? はい。 "\"半角のみ検索です。 >>【astrSql】の中身が『[(株)リ-a]』の場合、 >つまり、 > Dim astrSql As String = "[(株)リ-a]" > If "\" Like "[" & astrSql & "]" Then > astrSql = Replace(astrSql, "\", "¥") > End If >という事ですね。パターン文字列が『[[(株)リ-a]]』になっています。 すみません。文章に誤りがありました。 >【astrSql】の中身が『[(株)リ-a]』の場合、 ではなく 【astrSql】の中身は『(株)リ-a』です。 あいまい検索をするにあたり変数の前後に"["と"]"を使用しました。 >> System.Exception - パターン文字列が有効ではありません。 >もし、『[(株)リ-a]』という指定が、 > 『[』または『(』または『株』または『)』または『リ』または『-』または『a』または『]』 >を意図しているのだとしたら、 > If target Like "[[(株)リ-a]]" Then >ではなく、 > If (target Like "[[-(株)リa]") Or (target Like "]") Then >などと処理する必要があるでしょう。 【astrSql】の中身が[(株)リ-]までであればエラーは出ませんでした。 しかし、『-』後に文字が入るとエラーが発生してしまうようです。 like演算子を使用する際、 検索で『?』『*』『#』『!』『-』を判断する為、エラーが発生していたと思います。 >より複雑な検索が必要な場合には、正規表現(RegExp オブジェクト)による >検索を行うことも検討してみてください。 RegExpをしらべてみたのですが、VB.netのつくりが良くわかりませんでした。 もう少し調べてみます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.