1

VB.NET と ODBC (Windows) で PostgreSQL データベースを使用しています。

次のように、SELECT を正規表現と組み合わせて、単語全体の文を検索しています。

"SELECT dtbl_id, name 
   FROM mytable 
  WHERE name ~*'" + "( |^)" + TextBox1.Text + "([^A-z]|$)"  

これは場合によってはうまく検索できますが、テキストの構文エラー (またはその他の理由) のために失敗することがあります。たとえば、次の文がある場合

ビリー・アイドル: ホワイト・ウェディング

「白」という単語が見つかります。しかし、私が持っている場合

クラッシュ・ホワイト・ライオット

単語「白」の開始の間にスペースがないため、「白」は見つかりません。

:,.\/-=最も簡単な解決策は、文章などの文字を一時的にスペース に変更または置換することです。

.NET/ODBC での使用に適した単一の SELECT 行でこれを行うことは可能ですか? 多分同じ正規表現の中に?

もしそうなら、どのように?

4

1 に答える 1

2

これを試して:

SELECT 'CLASH-WHITE RIOT' ~ '[[:<:]]WHITE[[:>:]]';

[[:<:]][[:>:]]単に単語の始まりと終わりをそれぞれ意味します

詳細については、http ://www.postgresql.org/docs/9.1/static/functions-matching.html#FUNCTIONS-POSIX-REGEXPをご覧ください。

于 2012-06-23T14:09:40.747 に答える