はじめに
このドキュメントでは、正規表現(regex)がどのように動作するか、およびexpresswayサーバで正規表現をテストする方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Video Communications Server(VCS)およびExpresswayサーバ
- Telepresenceデバイス
- 企業間(B2B)コール
- コラボレーション導入
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
正規表現は、テキスト内の文字列の照合に使用されるパターンを定義する一連の文字です。これらの文字列は、検索ルールまたは変換で変更または保持できます。これらは正規表現の最も一般的な用途です。
正規表現のタイプ
基本的な式
- ドット(.)任意の1文字に一致します。
- 数字(\d)任意の10進数1桁に一致します。
- アスタリスク(*)前の文字または式の0回以上の繰り返しと一致します。
- プラス記号(+)直前の文字または式の1回以上の繰り返しに一致します。
- 疑問符(?)直前の文字または式の0または1回の繰り返しと一致します。
- 中かっこ{n}前の文字または式のn個の繰り返しに一致します。たとえば、(\d{3})は、任意の3桁の文字列に一致します。
- 中括弧の範囲{n,m}前の文字または式のnからmの繰り返しに一致します。たとえば、(\d{3,5})は、3、4、または5桁の文字列に一致します。
- 角カッコ[...]は、指定された文字のセットに一致します。これらは、個別に指定することも、範囲内で指定することもできます。たとえば、[abc]は文字a、b、cに一致します。
- 範囲を指定するには、範囲の先頭と末尾の間にハイフン(-)を使用します。たとえば、[a-z]は任意のアルファベット文字と一致します。
- 開き角カッコの後にキャレット(^)を使用すると、[^a-z]のように、アルファベット以外の文字と一致する文字が反転します。
- カッコ(...)一致する文字のセットをグループ化します。これらのグループは、置換文字列の一部として\nという文字を使用して、後から順番に参照できます。
- パイプ(|)いずれかの式または別の式と照合します。たとえば、(com|net)は、文字列comまたはnetのいずれかに一致します。
その他の式
- (?!..)これは否定的なルックアヘッドです。 存在してはならないサブ式を定義します。
- %localdomains%現在サーバーに構成されているすべてのSIPドメインと一致します。
パターンの作成とテスト
Expresswayサーバには、新しいアイテムを作成する際のビジネスへの影響を回避するために、設定を変更せずにパターンをテストするツールが用意されています。
このツールは、ExpresswayサーバのWebインターフェイスで、メンテナンス>ツール>パターンの確認に移動します。
パターンの確認ツール
- エイリアス:テストする文字列。宛先または登録のUniform Resource Identifier(URI)です。この文字列は、パターン文字列と比較され、一致が確認されます。
- パターンタイプ:この設定は、パターンがチェックされるときにパターン文字列をどのように扱うかを決定します。正規表現が最も一般的に使用されている。
- Exact:文字列全体が文字のエイリアス文字と完全に一致する必要があります。
- プレフィックス:エイリアスの先頭に文字列を指定する必要があります。
- サフィックス:エイリアスの末尾に文字列を指定する必要があります。
- 正規表現:文字列は正規表現として扱われます。
- パターン文字列:別名が比較されるパターン。
- パターン動作:パターン一致時に実行されるアクション。変更を実行する場合は、新しいテキストボックスを使用して変更を指定できます。
- [ストリップ]:一致するプレフィックスまたはサフィックスをエイリアスから削除します。パターンタイプが接頭辞または接尾辞に設定されている場合にのみ使用できます。
- 脱退:エイリアスに変更は適用されません。
- 置換:置換文字列内のテキストで別名の一致する部分を置換します。
- [プレフィックスを追加]:エイリアスの先頭に追加テキストを追加します。
- 接尾辞の追加:別名にテキストを追加します。
一般的に使用される正規表現の例
すべてを一致させるワイルドカード
このパターンは、特定のパターンマッチを必要とせず、検索ルールや変換を考慮する必要がある場合に広く使用されます。正規表現(.*)は、形式や長さに関係なく、入力にマッチします。ドットは任意の文字に一致し、アスタリスクはその式の任意の繰り返しになります。
すべてを一致させるワイルドカードの例1
エイリアスの入力に関係なく、同じパターンが成功します。
すべてを一致させるワイルドカード例2
ローカルドメインと非ローカルドメインの一致
これは通常、サーバで設定されているいずれかのローカルドメインの宛先とパターンを照合し、インターネットにルーティングする代わりにコールをローカルにルーティングし続けるために使用されます。正規表現%localdomains%は、サフィックスまたは正規表現パターンの2番目の部分として使用できます。
ローカルドメインを設定するには、Configuration > Domainsの順に選択します。
ローカルに設定されたドメイン
ローカルに設定されているドメイン以外のドメインでパターン一致が失敗する。
ローカルドメインの一致失敗
ローカルに設定されたドメインでも成功します。
ローカルドメインの一致成功
このパターンの前のネガティブルックアヘッド(?!.*@%localdomains%)は、反対の結果に使用することもできます。これは、ローカルドメイン以外のエイリアスが一致することを意味します。
ローカルドメインのネガティブルックアヘッド
異なるドメイン拡張の一致
このパターンは、企業が複数の内線番号を持つドメインを所有していて、そのいずれかがコールを許可している場合によく使用されますが、コール管理の場合は、検索ルールを考慮する前にこれらの番号を正規化する必要があります。
これは通常、パイプ(|)正規表現を使用した変換によって実現されます。
異なるドメイン拡張の例1
同じパターンが、2つのドメイン拡張子のいずれかでドメインに一致しますが、その結果として選択された正規化された拡張子に変換します。
異なるドメイン拡張の例2
通話料金の不正パターンの照合
電話ハッカーのコールの共通点は、ダイヤルされる数字の数にあります。国際コールでは、国コードの後にコールする電話番号が続く必要があり、そのためにコールは少なくとも7桁になります。また、企業内の内部ダイヤルプランの長さは4 ~ 6桁くらいが一般的です。
これにより、明らかな違いが生じます。この違いを利用して、これらのタイプのコールに対して異なるアクションを実行できます。ディジットカウントの正規表現を使用して、各コールで実行するアクションを指定できます。
数字カウントの例1
このパターンは、7 ~ 15桁のエイリアスにのみ一致します。桁数が少ないと一致しません。
数字カウントの例2
ディジット以外の文字もエラーになります。
数字カウントの例3
グループと参照パターン
グループと参照は、正規表現パターンと共に使用して、エイリアスの一部のセクションを変更し、その他のセクションを保持します。これは、プレフィックスを追加または削除したり、ドメインを変更したりする場合に便利です。グループはパターン文字列セクションで指定され、参照は置換文字列フィールドで順番に行われます。
グループと参照の例1
この例では、@cisco.comとのリテラル一致があり、testuri文字列がmatch all regexによって一致およびグループ化されています。
置換文字列内の\1参照は、パターン文字列内の最初のグループを呼び出します。このグループは、URIの内容にかかわらずURIにリンクするため、URIは結果のエイリアスに保存されます。
置換された文字列ではドメインが参照されず、代わりにinternaldomainに置き換えられます。これは結果エイリアスで確認できます。
グループを使用してURIを並べ替えることもできます。これにより、柔軟なダイヤルプランが可能になります。
グループと参照の例2
この例では、5桁の形式のエイリアスがあり、その後にドット、もう1桁、続いてドメインが続きます。
パターン文字列には、個別に分析できるさまざまなグループとセクションがあります。
- グループ1。パターン(\d{5})は、文字列の先頭の5桁と一致します。
- 正規表現(\.)はリテラルドットと一致します。つまり、元のエイリアスでは5桁の先頭の数字の後にドットが必要です。
- グループ2の場合、パターン(\d)は1つの数字と一致します。
- グループ3、リテラルパターン(@cisco.com)は、その文字のシーケンスにのみ一致します。これは、複数のドメインを含むように、または前の一致の後に任意の文字列を含むように、さらに変更できます。
エイリアスがパターン文字列に一致すると、アクションによってエイリアスが置換文字列に置き換えられます。
置換文字列は、新しい順序で以前のグループを参照します。
- 参照\2はグループ2にコールバックします。これは、ドットの後、ドメインの前の1桁です。
- 参照\1はグループ1にコールバックします。これはエイリアスの最初の5桁です。
- 参照\3はグループ3にコールバックします。これはエイリアスのドメインセクションです。
- ドットは参照されることも、どのグループの一部でもありません。したがって、結果エイリアスの一部ではありません。
エイリアスは、元のエイリアスと同じ数字になりますが、エイリアスの先頭にあるドットの後の数字が使用されます。
5桁と1桁を区切ったドットはエイリアスの一部ではなくなり、ドメインは保持されます。
すべてのグループを参照する必要はありません。参照されないグループは、結果エイリアスの一部ではありません。
関連情報
シスコのテクニカルサポートとダウンロード