5
Dim rc As Boolean = "2" Like "*?<*?"

rc が True に等しい理由がわかりません。確か2にまったく似ていません*?<*?

上記のパターンには、次の文字列が必要です

  • 少なくとも 3 文字 (2 つの ? と a <)
  • <シンボルは内部のどこかにあります。

私が理解できる限り、Like 演算子<以外を意味する特殊文字はありません。<

Visual Studio 2010 を使用しています。

4

1 に答える 1

1

2のような理由を直接説明することはできませんが"*?<*?"

あなたのクエリは次のようになります。

  • *- 0 個以上の文字に一致
  • ?- 1 つの文字が続く
  • <<-キャラクターが続く
  • *- 0 個以上の文字が続く
  • ?- 1文字で終了

あなたが望むロジックのために;

一致する前に少なくとも 3 文字、文字列の内部のどこかに "<" が出現する

その結果、次のクエリが生成されます。

Dim rc As Boolean = "2" Like "???*<*"

どちらが読み取ります。

  • ???- 3文字以上一致
  • * - さらに任意の数の文字が続く
  • <<-キャラクター が続く
  • * - さらに任意の数の文字が続く

私が知っている直接的な答えではありませんが、それでも同じように役立つことを願っています...

編集:

以下のコメントにお答えします。

あなたは〜したいです;

両側に少なくとも 1 文字ある "<" を含む文字列を見つけます

その結果、次のクエリが生成されます。

Dim rc As Boolean = "2" Like "*?<?*"

これは、結果として False を返します。

Dim rc As Boolean = "<" Like "*?<?*"

でも;

Dim rc As Boolean = "2<2" Like "*?<?*"

true を返します。

これが役立つことを願っています(もっと!)

于 2013-02-15T12:11:47.497 に答える