正規表現

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  関数 >

正規表現

MapForce では tokenize-regexp 関数 pattern パラメーターにて正規表現を使用して、入力パラメーターから得られた文字列の高度な絞り込みを行うことができます。

 

正規表現の構文ならびにセマンティックは XSLT や XQuery で使用されているものと同一で、 http://www.w3.org/TR/xmlschema-2/ にて定義されています。プログラミング言語によっては、正規表現の構文が若干違ってくることに注意してください。

 

用語


input

正規表現が適用される文字列


pattern

正規表現


flags

オプションのパラメーターで、正規表現の解釈方法を定義する


result

関数から得られる結果

 

regex6

 

tokenize-regexp 関数により文字列のシーケンスが得られます。行アイテムへの接続により、シーケンスのアイテムごとに新たな行が作成されます。

 

正規表現構文

リテラル(単一の文字)

例:"a" という文字は最も基本的な正規表現となります。この正規表現により、文字列内にある最初の "a" という文字がマッチします。

 

文字クラス []

角括弧に含まれる全ての文字セットがマッチの対象となります。

 

角括弧に含まれる文字の 1 つ(だけ)が文字列に対してマッチします。

 

pattern

[aeiou]

小文字の母音アルファベット全てがマッチの対象となります。

 

pattern

[mj]ust

"must" または "just" という単語がマッチします。

 

"pattern" に含まれる値は大文字と小文字で区別されるという点に注意してください。小文字の "a" は大文字の "A" にマッチしません。

 

 

文字範囲 [a-z]

2 つの文字間にある文字全てがマッチの対象となります。一度にマッチする文字は一文字だけである点に注意してください。

 

pattern

[a-z]

a から z まで、全ての小文字アルファベットがマッチの対象となります。

 

 

否定クラス [^]

角括弧の開始直後にハット記号を使用することで、その文字クラスを否定したことになります。

 

pattern

[^a-z]

文字クラスに含まれていない(つまりこの例では小文字以外)全ての文字にマッチします。

 

メタ文字 "."

ドットメタ文字

(改行を除く)全ての文字にマッチします。

 

pattern

.

全ての単一文字にマッチします。

 

量指定子 ? + * {}

量指定子を使用することで、与えられた文字列にマッチする繰り返しを定義することができます。

 


?



0 または 1

その前の文字列/チャンクがオプションとなります。





+



1回以上

その前に表示される文字が1回以上マッチします。





*



0回以上

 

その前に表示される文字が0回以上マッチします。

 





{}



最小 / 最大

繰り返し

 

与えられた回数の繰り返しにマッチします。

 



例: mo{1,3} により、"mo"、"moo"、"mooo" がマッチします。

 

 

()        

サブパターン        

正規表現の要素をグループ化するために使用されます。

 

|        

代替 / または        左から順にサブパターンのマッチを行います。

例: (horse|make) sense により、"horse sense" または "make sense" がマッチします。

 

 

フラグ

以下に示されるのはオプションのパラメーターで、正規表現の解釈方法を指定するために使用されます。個々の文字によりオプションを指定することができます。文字はどの順序でも使用することができ、繰り返して使用することもできます。

 

s

このオプションが指定された場合、ドットの適用範囲が拡張されます。

 

メタ文字の "." が全ての文字にマッチするようになります。s フラグがセットされていれば、入力文字列に "hello" と "world" が 2 つの異なる行にある場合でも、"hello.*world" という正規表現によりマッチが行われます。

 

m

このオプションが指定された場合、複数行モードによるマッチが行われます。

 

複数行ノードでは、ハット記号 ^全ての行頭(文字列全体の開始位置と改行文字の直後に来る文字)に対してマッチするようになります。

 

更にドル記号 $ 全ての行末(文字列全体の終了位置と改行文字の直前に来る文字)に対してマッチするようになります。

 

改行に使用される文字は #x0A となります

 

i

このオプションが指定された場合、マッチングにて大文字と小文字の違いが無視されます。

i フラグを指定すると、[a-z] により a-z の文字と A-Z の文字がマッチするようになります。

 

regex7

 

x

このオプションが指定されている場合、マッチング処理が行われる前に正規表現文字列内にある空白スペースが削除されます。空白スペースの文字は #x09、#x0A、#x0D、そして #x20 になります。

 

例外:

文字クラス表現内の空白文字(例: [#x20])は削除されません。

 

 

メモ:

コードを生成する場合、言語によっては正規表現構文の正確な機能や振る舞いが異なる可能性もあります。ご利用になる言語の正規表現がどのように動作するかを確認するようにしてください。


(C) 2019 Altova GmbH