テキスト マイニングを実行する場合、TSQL のワイルドカード文字 (Wildchar) では不十分なようです。現時点では、「CLR + 正規表現」を使用するのが非常に良い選択であるようですが、正規表現は変わりません。正規表現のメタデータに精通している場合は、正規表現を熟練かつ柔軟に使用して、複雑なテキスト マイニング作業を完了することができます。
1. 正規表現の特殊文字
は、特定の文字 (文字、数字、記号) と一致するために使用されます。
: 改行を除いて一致します。文字
w: 文字、数字、アンダースコア、または中国語の文字と一致しますs: 任意の空白文字と一致します
d: 数字と一致します
b: 単語の先頭または末尾と一致します
^: 文字列の先頭と一致します
$: 文字列と一致します文字列
k の終わり: グループ名への参照。例: k、group_name という名前のグループを参照することを意味します
group_number: group_number はグループのグループ番号です。1、2、3 などは、グループを参照することを意味します。グループ番号
2 を使用してグループ化し、文字またはグループを繰り返します
前の文字またはグループを繰り返す回数を指定します:
: 0 回以上繰り返します
: 1 回以上繰り返します
?: 0 回または 1 回繰り返しますtime{n}: n 回繰り返す
{n ,}: n 回以上繰り返す
{n,m}: n ~ m 回繰り返す
3、グループ化、エスケープ、分岐、修飾子
これらの文字には特定の意味があり、使用:
(): 括弧を使用してグループを表します
<>: グループ名を定義します < (" の間の文字列、括弧は特殊文字として使用されなくなりました|: 分岐、式は「or」に関連します
[]: 修飾された文字のリストを指定します。1 つの文字はリスト内の任意の文字と一致する必要があります。一致する文字は角かっこで指定します。例: [aeiou] 文字は aeiou 内のいずれか 1 つである必要があります。 : 除外文字のリストを指定します。文字は除外リスト内の任意の文字にすることはできません。除外文字リストは角かっこで指定します。例:[^aeiou] 文字は aeiou のいずれかにすることはできません。
グループ化は、括弧を使用して指定される部分式です。グループ化参照は、正規表現の記述をより簡潔にする、式内での部分式の繰り返しの使用を指します。デフォルトでは、正規表現によって各グループにグループ番号が自動的に割り当てられます。グループ番号は 1 から始まり、左から右に 1 ずつ増加します (base-1)。たとえば、最初のグループのグループ番号は 1、2 番目のグループのグループ番号は 2、
グループ化定義の 3 つの形式:
(?exp): グループに名前を付け、グループ名を介してグループを参照します。
(?:exp): グループは現在の位置のテキストとのみ一致します。グループの後にはグループ名もグループ番号もありません。1、グループ番号を使用してグループを参照します。
正規表現の前にグループ (exp) を定義し、正規表現の後にグループ番号を使用してグループの式を参照し、グループを参照できます。構文は次のとおりです: group_number;
例: b( w+)bs+1b。この正規表現にはグループ (w+) が 1 つだけあり、グループ番号は 1 です。グループの後に 1 をグループ化された部分式に置き換えます。これは次と同等です。 : b(w+)bs+(w+)b。
(?<=exp): テキストの先頭が式と一致します。式
(?!exp): テキストの接尾辞が exp ではない場合、接尾辞が exp ではない式を返します(? < !exp): 接頭辞テキストの exp が exp ではない、プレフィックスが exp ではない式を返す
1、サフィックスが一致する
(?=exp): テキストの後の式 exp と一致し、exp の位置の前の式を返します。接尾辞のマッチングは TSQL の「%ing」に似ています
たとえば、正規表現: bw+(?=ingb)
。
分析: その接尾辞が ing であり、それが単語の終わりであることをアサートします (b)、ing で終わる単語と一致しますが、単語の先頭部分、つまり ing より前の部分を返します
たとえば、「」を検索します。 I'm reading a book" の場合、文字が ing で終わるため、「reading」と一致します。正規表現は read を返し、返されたテキストにサフィックスが含まれていないことをアサートします。
2、プレフィックスマッチング
(?<=exp): テキストの先頭が式 exp と一致し、式 exp の位置の後の式が返されます。プレフィックス マッチングは TSQL の "re%" に似ています。たとえば、正規表現: (?<=bre)w+b
(? < !exp): テキストのprefixがexpではなく、prefixがexpではない式を返す
3.1たとえば、正規表現: bw+(?!ingb)