RegularExpression

RegularExpression["regex"]

文字列"regex"で指定される正規表現を一般化したものを表す.

詳細

  • RegularExpressionは,StringMatchQStringReplaceStringCasesStringSplitのような関数で,文字列のクラスを表すのに使うことができる.
  • RegularExpressionは,一般の文字列処理言語で使われるのと同様の正規表現の文法をサポートする.
  • 正規表現の文字列では,次の基本的な要素を使うことができる.
  • c文字通りの文字 c
    .改行以外の任意の文字
    [c1c2]ci中の任意の文字
    [c1-c2]c1から c2の範囲の任意の文字
    [^c1c2]ci以外の任意の文字
    p*繰り返されたあるいは繰り返されなかった p
    p+繰り返された p
    p?現れたあるいは現れなかった p
    p{m,n}m 回から n 回繰り返された p
    p*?,p+?,p??マッチする最短の文字列
    (p1p2)p1, p2, にマッチする文字列
    p1|p2p1あるいは p2にマッチする文字列
  • 以下は文字のクラスを表す.
  • \\d0から9までの数字
    \\D数字ではないもの
    \\sスペース,改行,タブ,その他の空白類
    \\S空白類文字ではないもの
    \\w文字記号(文字,数字,あるいは _
    \\W非文字記号
    [[:class:]]名前の付いたクラス中の記号
    [^[:class:]]名前の付いたクラスには含まれない記号
  • 次の名前付きクラスが使える.alnumalphaasciiblankcntrldigitgraphlowerprintpunctspaceupperwordxdigit
  • 次は文字列中の位置を表す.
  • ^文字列(あるいは行)の先頭
    $文字列(あるいは行)の末尾
    \\b語の区切り
    \\B語の区切り以外の任意の場所
  • 次は,続く正規表現にオプションを設定する.
  • (?i)大文字小文字の区別をしない(大文字小文字を無視)
    (?m)^$ が行の先頭と末尾に一致する(マルチラインモード)
    (?s).を新規行にマッチさせる
    (?-c)オプションを解除する
  • \\.\\[, 等は文字通り.[等を表す.
  • x:expr のような名前付きのWolfram言語パターンに類似のパターンを,(regex)を使って正規表現の文字列で設定することができる.
  • 正規表現の文字列内では,\\gnn 番目のカッコに入った正規表現オブジェクト(regex)にマッチする部分文字列を表す.短縮形の\\n は,\\gnと等しい場合が多い.
  • StringReplaceStringCasesのような関数の目的のために,規則RegularExpression["regex"]->rhs の右辺に現れる任意の$nregex 中の n 番目のカッコに入った正規表現オブジェクトに対応するとみなされる.$0は,文字列全体がマッチしたことを表す.

例題

すべて開くすべて閉じる

  (2)

a,b,c,d,eの文字を含む語を求める:

文字列パターンを使った同等の形式:

文字列が文字と空白からなっているかどうか判断する:

文字列パターンを使った同等の形:

スコープ  (21)

基本構造  (17)

改行以外の文字を抽出する:

"a"と"b"のどちらか:

"a"と"e"を含む"a"から"e"までの任意の文字:

"a"と"1"以外の任意の文字:

1回以上繰り返されている任意の数字:

2回もしくは3回繰り返された文字"a":

任意の数字:

数字以外の文字:

スペース,改行,タブ,その他の空白文字のいずれか:

空白文字以外:

文字と数字:

文字と数字以外:

大文字をすべて求める:

改行のはじめで文字列を分割する:

改行の終りで文字列を分割する:

各語の境界に文字を挿入する:

語の境界以外のすべての文字で文字列を分割する:

複合構造  (4)

StringExpressionRegularExpressionオブジェクトを含むことができる:

条件パターン:

代替を使って1つ以上の改行にマッチする:

欲張りではないマッチは限量詞にクエスチョンマーク"?" を付けて行うことができる:

一般化と拡張  (1)

$1(.)でマッチされた文字を参照する:

番号付きのサブパターン:

特性と関係  (3)

StringMatchQを使って文字列パターンのマッチを判断する:

StringCasesを使ってマッチする部分文字列を求める:

デリミタパターンを使って文字列を部分文字列に分割する場合はStringSplitを使う:

Wolfram Research (2004), RegularExpression, Wolfram言語関数, https://reference.wolfram.com/language/ref/RegularExpression.html.

テキスト

Wolfram Research (2004), RegularExpression, Wolfram言語関数, https://reference.wolfram.com/language/ref/RegularExpression.html.

CMS

Wolfram Language. 2004. "RegularExpression." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RegularExpression.html.

APA

Wolfram Language. (2004). RegularExpression. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RegularExpression.html

BibTeX

@misc{reference.wolfram_2024_regularexpression, author="Wolfram Research", title="{RegularExpression}", year="2004", howpublished="\url{https://reference.wolfram.com/language/ref/RegularExpression.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_regularexpression, organization={Wolfram Research}, title={RegularExpression}, year={2004}, url={https://reference.wolfram.com/language/ref/RegularExpression.html}, note=[Accessed: 22-November-2024 ]}