正規表現とは何ですか。またどのようにルールに適用しますか。
環境:
ビジネスルールで使用される正規表現
正規表現では、文字列セットを指定する際に演算子と文字列が使用されます。これらをルールの構成時に使用すると、レコードをルーティングまたはエスカレーションする際に使用する基準に対して、より高い柔軟性が得られます。
注意:正規表現を使用するとき、アスタリスク(*)はワイルドカードを表しません。かわりに、アスタリスクでは先行する文字が任意選択になります。この詳細については、Answer ID 861: Rules Matching Incorrectlyを参照してください。
解決策:
次の表では、ビジネス・ルールで使用される可能性のある正規表現タイプの一部を示します。正規表現を使用するとき、選択するフィールドの演算子は、「次の正規表現と一致する」と「次の正規表現と一致しない」のいずれかにする必要があります。
OR条件を表すパイプ:ルールで使用される正規規則の最も一般的な使用法は、パイプ( | )です。パイプは、一致するかどうか関心のある一連の単語やフレーズを指定する際に使用されます。パイプは、パイプ演算子で区切られた各項目間のOR演算子として機能します。たとえば、Eメールの件名に「help」または「assistance」が含まれる場合にルールと一致するという基準を設定するには、次のようにルールに基準を設定できます。
Incident.Summary matches regular expression help|assistance
その後、他の基準を追加したり、ルールの構成を完了するアクションを指定したりできます。
大文字と小文字の区別:正規表現にリストされる用語は大文字と小文字が区別されないため、正規表現「ABC」と一致するようにルールが設定されている場合、次の文字列が一致とみなされます。: ABC、abc、abC、ABc
大括弧で囲まれた表現[A-Z]は、表現に大文字が含まれているかどうかをチェックするための特別な正規表現です。
ルールのテスト:ルールが構成されたら、必ず、サイトへのテスト・レコードを作成または編集してルールをテストしてください。ルールと一致するレコードを1つ以上作成または編集して、構成したルールが予想どおりにレコードで機能することを確認します。また、ルールとは一致しないレコードを1つ以上作成または編集して、一致しないレコードに対してはルールの影響がないことも確認します。
次の表に、ビジネス・ルールで使用される正規表現演算子の一部を示します。Oracle RightNow CXでは、POSIX Extended Syntaxを使用する任意の正規表現を受け入れます。
正規表現の説明
[ ] | -- | 大括弧内の任意の文字と一致します。 |
[0-9] | -- | 0-9の任意の数字と一致します。 |
[A-Za-z] | -- | A-Zまたはa-zの任意の文字と一致します。 |
[^] | -- | 大括弧内にない任意の文字と一致します。大括弧内の最初の文字は^にする必要があります。 |
text1|text2 | -- | パイプ文字はブール値ORとして機能します。つまり、text1またはtext 2と一致します。 注意:正規表現の先頭または末尾ではパイプを含めないでください。 |
. | -- | 改行を除く任意の単一文字と一致します。 |
? | -- | 直前の文字が任意選択であり、一致が最大で1回行われます。 |
* | -- | 直前の文字の一致が必要な数だけ繰り返されます。直前の文字が存在しない場合にも一致します。 |
+ | -- | 直前の文字と1回以上一致します。 |
{n} | -- | 直前の文字と正確にn回一致します。 |
{n,} | -- | 直前の文字とn回以上一致します。 |
{,m} | -- | 直前の文字は任意選択であり、最大でn回一致します。 |
{n,m} | -- | 直前の文字がn回以上、最大でm回一致します。 |
\w | -- | 任意の英数字 |
( ) | -- | 算術で使用される場合と同様に、正規表現の要素をグループ化する際に使用されます。 |
^ | -- | 行の先頭にある場合に一致します。 |
$ | -- | 行の末尾にある場合に一致します。 |
\ | -- | 文字を引用またはエスケープし、そうでなければ構文文字として解釈します。引用する必要のある文字は以下のとおりです。+ ?| ( ) { } |
正規表現の例
正規表現: | 一致: | |
^ABC | -- | 行の先頭にあるABC |
ABC$ | -- | 行の末尾にあるABC |
^ABC$ | -- | 行の唯一の単語としてのABC |
^...$ | -- | 3文字だけを含む任意の行 |
^......-.....1 | -- | 「1」で終わる任意のリファレンス番号 |
t.e | -- | tae、tbe、tce、t%e、tie、the、toe .... |
at*e | -- | ae、ate、atte、attte、atttte ... |
at+e | -- | ate、atte、attte ... |
at?e | -- | ae、ate |
m[aeiou]t | -- | mat、met、mit、mot、mut |
cat|mat | -- | cat、mat |
lo{4}ng | -- | loooong |
lo{2,4}ng | -- | loong、looong、loooong |
ward | ward\.| ^ward | -- | スペースで囲まれた「ward」(「forward」または「backward」は一致しない)、文の末尾にある「ward」、および行の先頭にある「ward」(先行するスペースなし)。 |