正規せいき表現ひょうげん

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

正規せいき表現ひょうげん(せいきひょうげん、えい: regular expression)は、文字もじれつ集合しゅうごうひとつの文字もじれつ表現ひょうげんする方法ほうほうひとつである。正則せいそく表現ひょうげんせいそくひょうげんともばれ、形式けいしき言語げんご理論りろん分野ぶんやでは比較的ひかくてきこちらの訳語やくごほう使つかわれる[1]。まれに正則せいそくしきせいそくしき[2]あるいは正規せいきしきせいきしきばれることもある。

もともと正規せいき表現ひょうげん形式けいしき言語げんご理論りろんにおいて正規せいき言語げんごあらわすための手段しゅだんとして導入どうにゅうされた。形式けいしき言語げんご理論りろんでは、形式けいしき言語げんごが「正規せいき言語げんごであること」と「正規せいき表現ひょうげんによってあらわせること」は同値どうちである。

その正規せいき表現ひょうげんたん機能きのう文字もじれつ探索たんさくツールやテキストエディタワードプロセッサなどのアプリケーションで、マッチさせるべき対象たいしょうあらわすために使用しようされるようになり、あらわせるパターンの種類しゅるいやすために本来ほんらい正規せいき表現ひょうげんにはないさまざまな記法きほうあらたにくわえられた。このような拡張かくちょうされた正規せいき表現ひょうげんには正規せいき言語げんごではない文字もじれつあらわせるものもおおく、ゆえに正規せいき表現ひょうげんという名前なまえ実態じったいそくしていないめんもあるが、伝統でんとうてき正規せいき表現ひょうげんばれつづけている。

この記事きじではおもにこのような正規せいき表現ひょうげんもちいたパターンマッチングについて説明せつめいしている。以下いか誤解ごかいのないかぎり、アプリケーションやプログラミングにおいて正規せいき表現ひょうげんもちいた文字もじれつのパターンマッチングをおこな機能きのうのことを、たん正規せいき表現ひょうげんという。

ほとんどのプログラミング言語げんごでは、ライブラリによって正規せいき表現ひょうげん使つかうことができるほか一部いちぶ言語げんごでは正規せいき表現ひょうげんリテラルもある。「正規せいき表現ひょうげんによるマッチ」を意味いみする(専用せんようの)演算えんざんがある言語げんごなども一部いちぶある。具体ぐたいれいとして、grep, AWK, sed, Perl, Tcl, lex などがある。

それぞれの言語げんごやアプリケーションで細部さいぶ仕様しようことなっている、といったようにおもわれることもおおいが(ふる実装じっそうでは実際じっさいにそのようなこともおおい)、近年きんねんおなじライブラリを使つかっていればおなじということもおおい。またPOSIXなど標準ひょうじゅんもある。

基本きほんてき概念がいねん[編集へんしゅう]

理論りろんてき明解めいかいでありあつかいも容易よういであるため、形式けいしきてき説明せつめいさきべる。

形式けいしきてき説明せつめい[編集へんしゅう]

記号きごう(アルファベット) うえ正規せいき表現ひょうげんつぎのようなものからる。正規せいき表現ひょうげんがあらわす記号きごうれつ(アルファベットれつ)の集合しゅうごうによって形式けいしき言語げんご定義ていぎされる。

  • 正規せいき表現ひょうげんである。これは記号きごうれつなにふくまないそら集合しゅうごう あらわす。
  • 任意にんい要素ようそ)は正規せいき表現ひょうげんである。これは という記号きごうれつのみからなる集合しゅうごう あらわす。
  • 正規せいき表現ひょうげんならば、
    • 正規せいき表現ひょうげんである。これは ふくまれる記号きごうれつ集合しゅうごうふくまれる記号きごうれつ集合しゅうごう集合しゅうごうあらわす。
    • 正規せいき表現ひょうげんである。これは ふくまれる記号きごうれつふくまれる記号きごうれつをつなげてできる記号きごうれつ集合しゅうごう あらわす。
    • 正規せいき表現ひょうげんである。これは ふくまれる記号きごうれつを 0 以上いじょうつなげてできる文字もじれつ集合しゅうごう あらわす(クリーネ閉包へいほう)。
  • 上記じょうき帰納的きのうてき導出どうしゅつによって構成こうせいされる記号きごうれつのみが正規せいき表現ひょうげんである。

正規せいき表現ひょうげん定義ていぎに、つぎ項目こうもくふくめることもある:

  • 正規せいき表現ひょうげんである。これはそら記号きごうれつ のみからなる集合しゅうごう あらわす。

正規せいき表現ひょうげん あらわ集合しゅうごう正規せいき表現ひょうげん あらわ集合しゅうごうひとしいので、正規せいき表現ひょうげん定義ていぎふくめなくても 代用だいようできる。

わりに くことや、わりに くこともある。また、「」や「」の優先ゆうせん順位じゅんい明確めいかくにするために、補助ほじょてきなカッコも(上述じょうじゅつ定義ていぎにはふくめていないが)必要ひつようである。

実用じつようてき説明せつめい[編集へんしゅう]

以下いかではもっぱらよく使つかわれているライブラリやツールなどの実用じつようてき観点かんてんから説明せつめいする。

たとえば、「Handel」「Hendel」「Haendel」という3つの文字もじれつふく集合しゅうごうは「H(e|ae?)ndel」というパターンで表現ひょうげんできる(あるいは、パターンは個々ここの3つの文字もじれつマッチするわれる)。ほとんどの形式けいしきでは、もし特定とくてい集合しゅうごうにマッチするなんらかの正規せいき表現ひょうげん存在そんざいすれば、無限むげんかずのそのような表現ひょうげんがある。ほとんどの形式けいしきでは正規せいき表現ひょうげん構築こうちくするためにつぎ演算えんざん提供ていきょうしている。

選言せんげん
たてぼう選択肢せんたくし区切くぎる。たとえば「gray|grey」は「gray」または「grey」にマッチし、これは通常つうじょうgr(a|e)y」に短縮たんしゅくされる。
グループ
まる括弧かっこはスコープと演算えんざん優先ゆうせん順位じゅんい定義ていぎするためにもちいられる。たとえば、「gr(a|e)y」では「(a|e)」の部分ぶぶんで「a」または「e」をしめし、全体ぜんたいで「gray」または「grey」にマッチする。
りょう
文字もじやグループのうしろのりょうは、直前ちょくぜん表現ひょうげんなんかいあらわれることがゆるされるかを指定していする。非常ひじょうによく使つかわれるりょうとして「?」「*」「+」がある。
?
疑問符ぎもんふ直前ちょくぜん表現ひょうげん01個いっこあることをしめす。たとえば、「colou?r」は「color」と「colour」にマッチする。
*
アスタリスク直前ちょくぜん表現ひょうげん0以上いじょうあることをしめす。たとえば、「go*gle」は「google」「gogle」「ggle」などにマッチする。
+
プラス符号ふごう直前ちょくぜん表現ひょうげん1個いっこ以上いじょうあることをしめす。たとえば、「go+gle」は「google」「gogle」などにマッチするが、「ggle」にはマッチしない。

これらの構文こうぶん任意にんい複雑ふくざつ表現ひょうげん形成けいせいするためにわされて使用しようされる。

歴史れきし[編集へんしゅう]

正規せいき表現ひょうげん起源きげんは、言語げんごがくと、理論りろん計算けいさん科学かがくいち分野ぶんやであるオートマトン理論りろん形式けいしき言語げんご理論りろんにみることができる。20世紀せいき言語げんごがくでは数理すうりてき言語げんごあつか数理すうり言語げんごがく発展はってんしその過程かてい一部いちぶとして、また後者こうしゃ計算けいさんのモデル(オートマトン)や形式けいしき言語げんご分類ぶんるい方法ほうほうなどをあつか学術がくじゅつ分野ぶんやである。数学すうがくしゃスティーヴン・クリーネ1950年代ねんだい正規せいき集合しゅうごうばれる独自どくじ数学すうがくてき表記ひょうきほうもちい、これらの分野ぶんやのモデルを記述きじゅつした。

Unixけいのツールにひろまったのは、ケン・トンプソンがテキストファイルちゅうのパターンにマッチさせる手段しゅだんとして、この表記ひょうきほうをエディタQED導入どうにゅうしたことなどにはじまる。かれはこの機能きのうUNIXのエディタedにも追加ついかし、のち一般いっぱんてき検索けんさくツールであるgrep正規せいき表現ひょうげんへとがれていった。これ以降いこう、トンプソンの正規せいき表現ひょうげん適用てきようにならい、おおくのUnixけいのツールがこの方法ほうほう採用さいようした(たとえば expr, awk, Emacs, vi, lex, Perl など)。

PerlTcl正規せいき表現ひょうげんヘンリー・スペンサー(えい)によってかれたものから派生はせいしている(Perlはのちにスペンサーの正規せいき表現ひょうげん拡張かくちょうし、おおくの機能きのう追加ついかした)。フィリップ・ヘーゼルはPerl正規せいき表現ひょうげんとほぼ互換ごかんのものを実装じっそうするこころみとしてPerl Compatible Regular Expressions (PCRE) を開発かいはつした。これはPHPApacheなどといったあたらしいツールで使用しようされている。

Rakuでは、正規せいき表現ひょうげん機能きのう改善かいぜんしてその適用てきよう範囲はんい能力のうりょくたかめ、Parsing Expression Grammar定義ていぎできるようにする努力どりょくがなされた。この結果けっかとして、Raku文法ぶんぽう定義ていぎだけでなくプログラマのツールとしても使用しようできる、Perl 6 rulesばれるしょう言語げんごされた。

本来ほんらいの)正規せいき表現ひょうげんからの拡張かくちょう各種かくしゅあり便利べんりであるがそのおおくは、(本来ほんらいの)正規せいき言語げんごから逸脱いつだつするものであり、キャプチャなどが代表だいひょうれいである。なお、正規せいき言語げんごから逸脱いつだつしないことによって理論りろんてきあつかいが可能かのうになるという利点りてんがあるため、たとえば「包含ほうがんオペレータ」の提案ていあんではそういった観点かんてんからの理由りゆうげられている。

Rakuにかぎらずいくつかの実装じっそうでは、(Perlではsubpatternとんでいる)部分ぶぶんパターンの定義ていぎとその再帰さいきてき呼出よびだしにより、たとえばカッコの対応たいおうなどといった(本来ほんらいの)正規せいき表現ひょうげんでは不可能ふかのうなパターンも表現ひょうげんできる。これは、対象たいしょう部分ぶぶんにマッチした文字もじれつ捕獲ほかくされ、から利用りようできるキャプチャとはことなり、パターンそのものの定義ていぎ利用りようである。PHP, Perl, Python(regexライブラリ), Ruby などで利用りようできる。

構文こうぶん[編集へんしゅう]

標準ひょうじゅん[編集へんしゅう]

UNIX標準ひょうじゅんであるPOSIXでは、単純たんじゅん正規せいき表現ひょうげん基本きほん正規せいき表現ひょうげん拡張かくちょう正規せいき表現ひょうげんの3種類しゅるい記法きほうしめされている。このうち、単純たんじゅん正規せいき表現ひょうげんは「歴史れきしてき[ちゅう 1]」また「レガシー[ちゅう 2]」とかれており、後方こうほう互換ごかんせい提供ていきょうするものとされ、標準ひょうじゅん将来しょうらいはんでは廃止はいしされ[ちゅう 3]注意ちゅういされている。

単純たんじゅん正規せいき表現ひょうげん[編集へんしゅう]

単純たんじゅん正規せいき表現ひょうげんSRE[ちゅう 4]ともばれる。その仕様しようは「regexp.h」のマニュアルページとしてしめされている[3]

基本きほん正規せいき表現ひょうげん[編集へんしゅう]

基本きほん正規せいき表現ひょうげんBRE[ちゅう 5]ともばれる。ほとんどの正規せいき表現ひょうげん利用りようする UNIXのユーティリティ(grepやsed)のデフォルトはこれである[4]

この文法ぶんぽうでは、ほとんどの文字もじはリテラル(機能きのう意味いみせずかれたそのまま)にあつかわれる。つまり、ある文字もじはその文字もじにのみマッチする。たとえば、正規せいき表現ひょうげんa」は文字もじa」にマッチし、正規せいき表現ひょうげん(bc」は文字もじれつ(bc」にマッチするなど。例外れいがいメタ文字もじばれる。

正規せいき表現ひょうげん マッチする対象たいしょう
. 任意にんいの1文字もじにマッチする。
[…] 括弧かっこないふくまれる1文字もじにマッチする。たとえば、正規せいき表現ひょうげん[abc]」は1文字もじa」「b」「c」にマッチする。正規せいき表現ひょうげん[a-z]」はすべてのえい小文字こもじの1文字もじにマッチする。これらはぜることができる。「[abcq-z]」は1文字もじa」「b」「c」「q」「r」「s」「t」「u」「v」「w」「x」「y」「z」にマッチし、正規せいき表現ひょうげん[a-cq-z]」も同様どうようである。正規せいき表現ひょうげんちゅうの「-」は括弧かっこない最初さいしょ最後さいごにあるときのみ、リテラルとしてあつかわれる。たとえば正規せいき表現ひょうげん[abc-]」や正規せいき表現ひょうげん[-abc]」は1文字もじa」「b」「c」「-」にマッチする。1文字もじ]自身じしんにマッチさせるもっとばや方法ほうほうは、かこんでいる括弧かっこないで、括弧かっこ最初さいしょになるようにすることである。たとえば正規せいき表現ひょうげん[][ab]」は1文字もじ]」「[」「a」「b」にマッチする。
[^…] 括弧かっこないふくまれない1文字もじにマッチする。たとえば正規せいき表現ひょうげん[^abc]」は「a」「b」「c以外いがい任意にんい文字もじにマッチする。正規せいき表現ひょうげん[^a-z]」はえい小文字こもじ以外いがい任意にんいの1文字もじにマッチする。うえ同様どうようにこれらはぜることができる。
^ くだり最初さいしょにマッチする。
$ くだり最後さいごにマッチする。
\(…\) これにかこまれた表現ひょうげんは、後方こうほうすことができる。つぎ\1, …, \9こう参照さんしょうのこと。
  • \1
  • \2
  • \3
  • \4
  • \5
  • \6
  • \7
  • \8
  • \9
それぞれ「\(」と「\)」でかこまれた部分ぶぶん先行せんこうしてマッチした1 - 9 番目ばんめ文字もじれつおな文字もじれつパターンにマッチする。この機能きのう理論りろんてきには、うならば正規せいきで(正規せいき言語げんご記述きじゅつりょくえる)、POSIX拡張かくちょう正規せいき表現ひょうげんでは採用さいようされていない。
*
  • 1文字もじつづく「*」は0かい以上いじょう表現ひょうげんかえしにマッチする。たとえば「[xyz]*」は空文字くうもじれつ文字もじれつx」「y」「zx」「zyx」などにマッチする。
  • n を1から9までの数字すうじとしたとき、基本きほん正規せいき表現ひょうげん\n*」は「\(」と「\)」でかこまれた部分ぶぶんの0かい以上いじょうかえしにマッチする。たとえば、基本きほん正規せいき表現ひょうげん\(a.\)c\1*」 は文字もじれつabcab」 「abcabab」「abcababab」などにマッチするが、文字もじれつabcac」にはマッチしない。
  • \(」と「\)」でかこまれた表現ひょうげんつづく「*」は無効むこうとされる。しかし、一部いちぶ環境かんきょうではそうならない。
\{m,n\} 直前ちょくぜんのブロックの m かい以上いじょう n かい以下いかかえしにマッチする。たとえば、正規せいき表現ひょうげんa\{3,5\}」は文字もじれつaaa」「aaaa」「aaaaa」にマッチする。

ふるいバージョンのgrepは選言せんげん演算えんざん\|」をサポートしていない。

れい

正規せいき表現ひょうげん.at」は文字もじれつhat」「cat」「5at」のような3文字もじ文字もじれつにマッチする
正規せいき表現ひょうげん[hc]at」は文字もじれつhat」と「cat」にマッチする
正規せいき表現ひょうげん[^b]at」は文字もじれつbat以外いがいの「.at」でマッチするすべての文字もじれつにマッチする
正規せいき表現ひょうげん^[hc]at」はこう最初さいしょにあるときだけ、文字もじれつhat」と「cat」にマッチする
正規せいき表現ひょうげん[hc]at$」はこう最後さいごにあるときだけ、文字もじれつhat」と「cat」にマッチする

符号ふごうてん範囲はんいによってたとえば「アルファベット大文字おおもじ」などを表現ひょうげんしようとすることは、とき問題もんだいをひきおこす。たとえばロケールに依存いぞんするれいとして、エストニアのアルファベットじゅんでは、文字もじ「s」ののちに「z」があり、そのは「t」「u」「v」「w」「x」「y」とつづくので、正規せいき表現ひょうげん[a-z]」ではすべての言語げんごのすべてのアルファベット小文字こもじにマッチするわけではない[ちゅう 6]。そのため、POSIX 標準ひょうじゅんではつぎひょうしめされているクラス、つまり文字もじ区分くぶん定義ていぎしている。

POSIX クラスをもちいた正規せいき表現ひょうげん[ちゅう 7] 対応たいおうする表現ひょうげん 意味いみ
[[:upper:]] [A-Z] 英語えいご大文字おおもじ
[[:lower:]] [a-z] 英語えいご小文字こもんじ
[[:alpha:]] [A-Za-z] 英語えいごのアルファベット
[[:alnum:]] [A-Za-z0-9] アラビア数字すうじ英語えいごのアルファベット
[[:digit:]] [0-9] アラビア数字すうじ
[[:xdigit:]] [0-9A-Fa-f] 16しん数字すうじ
[[:punct:]] [.,!?:...] 英語えいご句読点くとうてん
[[:blank:]] [ \t] 半角はんかくの)スペースタブ
[[:space:]] [ \t\n\r\f\v] 半角はんかくの)空白くうはく
[[:cntrl:]] 制御せいぎょ文字もじ
[[:graph:]] [^ \t\n\r\f\v[:cntrl:]] 印字いんじ文字もじ
[[:print:]] [^\t\n\r\f\v[:cntrl:]] 印字いんじ文字もじとスペース

れい:正規せいき表現ひょうげん[[:upper:]ab]」は英語えいご大文字おおもじA」〜「Z」と「a」と「b」のうち1文字もじのみにマッチする。

いくつかのツールで使用しようできる、POSIX にないクラスとして「[:word:]」がある。「[:word:]」は通常つうじょう[:alnum:]」とアンダースコアからなる。これらがおおくのプログラミング言語げんご識別子しきべつしとして使用しようできる文字もじであることを反映はんえいしている。

拡張かくちょう正規せいき表現ひょうげん[編集へんしゅう]

拡張かくちょう正規せいき表現ひょうげんERE[ちゅう 8]ともばれる。より現代げんだいてき拡張かくちょう正規せいき表現ひょうげんおおくの場合ばあい現在げんざいUNIXのユーティリティでコマンドラインオプションに「-E」をふくめることで使用しようできる[5]

POSIX拡張かくちょう正規せいき表現ひょうげん伝統でんとうてきUNIX正規せいき表現ひょうげんているが、いくつかのてんことなっている。

基本きほん正規せいき表現ひょうげん 拡張かくちょう正規せいき表現ひょうげん
(対応たいおうなし) +
(対応たいおうなし) ?
(対応たいおうなし) |
\{…\} {…}
\(…\) (…)
( \(
) \)
[ \[
] \]
. \.
* \*
? \?
+ \+
^ \^
$ \$

たとえば、拡張かくちょう正規せいき表現ひょうげんa\.(\(|\))」は文字もじれつa.)」や文字もじれつa.(」にマッチする。

GNU Emacs正規せいき表現ひょうげん[編集へんしゅう]

GNU findコマンドにおけるデフォルトの正規せいき表現ひょうげん文法ぶんぽうとしてももちいられる。(findutils-4.2.28)

GNU Emacs Manual - Regexps

Perlの正規せいき表現ひょうげん[編集へんしゅう]

PerlPOSIX拡張かくちょう正規せいき表現ひょうげんさえも上回うわまわ豊富ほうふ文法ぶんぽうっている。そのれいとして、POSIXとはことなり、Perlの正規せいき表現ひょうげんには「欲張よくばりょう指定してい」がある。標準ひょうじゅんの「*」は、たとえば、正規せいき表現ひょうげんa.*b」の「.*」はできるだけなが文字もじれつにマッチしようとする。このふるまいを「貪欲どんよく」という。たとえば文字もじれつa bad dab」にマッチさせると、全体ぜんたいにマッチする。これにたいし、Perlでは使つかうことができる正規せいき表現ひょうげんa.*?b」の「.*?」は、マッチするのであれば、できるだけみじか文字もじれつにマッチする。たとえば文字もじれつa bad dab」にたいして「a b」にだけマッチする。これを「欲張よくばりょう指定してい」とう。

また、Perlには以下いか定義ていぎ文字もじクラスがある。

メタ文字もじ マッチする対象たいしょう
\d アラビア数字すうじ、つまり「[0-9]
\D アラビア数字すうじ以外いがい文字もじ、つまり「[^\d]
\w アルファベット、アラビア数字すうじまたはアンダーバー、つまり「[a-zA-Z_0-9]」(ロケールに依存いぞんし、たとえばウムラウト文字もじなどのあつかいがわる)
\W アルファベット、数字すうじやアンダーバー以外いがい文字もじ、つまり「[^\w]
\s 空白くうはく文字もじ、つまり「[ \t\n\r\f]」(ASCII文字もじ集合しゅうごう場合ばあい
\S 空白くうはく文字もじ以外いがい文字もじ、つまり、[^\s]

すぐれた機能きのうをもつPerlの拡張かくちょう正規せいき表現ひょうげんは、おおくのプログラミング言語げんごやソフトウェアでりいれられている。たとえば、JavaのPatternクラスPythonRubyなどがそうである。しかし、これらがPerlの正規せいき表現ひょうげん完全かんぜん互換ごかんであるわけではない。また、Perl Compatible Regular Expressions (PCRE) とばれる汎用はんよう正規せいき表現ひょうげんライブラリはアプリケーションにまれ、Perlの正規せいき表現ひょうげんとほぼ互換ごかん機能きのう提供ていきょうする。

正規せいき表現ひょうげんライブラリ[編集へんしゅう]

言語げんご処理しょりけいやアプリケーションが正規せいき表現ひょうげんをサポートしていない場合ばあいであっても、正規せいき表現ひょうげん必要ひつよう処理しょり提供ていきょうする外部がいぶライブラリを導入どうにゅうすることで正規せいき表現ひょうげん使つかうことができる。以下いかにそのいちれいげておく。

PCRE
Perl互換ごかんのライブラリ。Eximのために開発かいはつされ、ApachePostfixをはじめ、さまざまなソフトウェアにまれている[6]
おにしゃ
正規せいき表現ひょうげんオブジェクトごとにことなる文字もじエンコーディングを指定していできる特徴とくちょうをもつ。Rubyの1.9系列けいれつPHPの5系列けいれつ採用さいようされている。macOSよう検索けんさくウィンドウを追加ついかして移植いしょくしたOgreKit(Oniguruma Regular Expression Framework for Cocoa)が存在そんざいする[7]
おにくも
おにしゃから派生はせいした正規せいき表現ひょうげんライブラリで、Perl 5.10以降いこう導入どうにゅうされた機能きのうをサポートする。Ruby 2.0以降いこう標準ひょうじゅんライブラリとして利用りようされている[8]
re2英語えいごばん
PCREなどのバックトラックしきではなくオートマトンもちいることで、しょうメモリでマッチングをおこなうことができる。Google内部ないぶ利用りようしている。
GNU Regex
GNU Cライブラリふくまれているため、Unixけいでは標準ひょうじゅん利用りようできる。
Boost.Regex
Boost C++ライブラリによる実装じっそう。デフォルトでPerl互換ごかん文法ぶんぽう使つかわれる[9]が、POSIXやECMAScriptなどの文法ぶんぽうプロファイルを任意にんい選択せんたくすることもできる[10]C++11規格きかくにてBoost.Regexのサブセットが標準ひょうじゅんされた[11][12][13][14]

脚注きゃくちゅう[編集へんしゅう]

注釈ちゅうしゃく[編集へんしゅう]

  1. ^ えい: historical
  2. ^ えい: legacy
  3. ^ えい: may be withdrawn
  4. ^ えい: simple regular expressions
  5. ^ えい: basic regular expression
  6. ^ これは正規せいき表現ひょうげんとして「[a-z]」を使用しようしていたことが原因げんいんである。
  7. ^ 所定しょてい文字もじれつ内側うちがわ括弧かっこおよびコロンでかこって「POSIX クラスを表現ひょうげん」し、外側そとがわ括弧かっこは「その1のみからなる正規せいき表現ひょうげん記述きじゅつ」している。
  8. ^ えい: extended regular expression

出典しゅってん[編集へんしゅう]

  1. ^ J. ホップクロフト、R. モトワニ、J. ウルマン『オートマトン言語げんご理論りろん 計算けいさんろん I だい2はん』サイエンスしゃ、2003ねんISBN 9784781910260 
  2. ^ 中村なかむら克彦かつひこ『コンピュータとはなにか?』東京電機大学とうきょうでんきだいがく出版しゅっぱんきょく、2018ねん、156ぺーじ。"おおくの文献ぶんけんでは正則せいそく表現ひょうげんまたは正規せいき表現ひょうげんんでいるが、数学すうがくでは“regular”の訳語やくごとして「正則せいそく」をてるのが一般いっぱんてきであり、“expression”は算術さんじゅつしき論理ろんりしき同様どうように「しき」とぶべきである"。 
  3. ^ POSIX > XSH > regexp(3)
  4. ^ POSIX > Base Definitions > Regular Expressions > Basic Regular Expressions
  5. ^ POSIX > Base Definitions > Regular Expressions > Extended Regular Expressions
  6. ^ PCRE - Perl Compatible Regular Expressions
  7. ^ https://github.com/kkos/oniguruma
  8. ^ https://github.com/k-takata/Onigmo
  9. ^ Perl Regular Expression Syntax - 1.81.0
  10. ^ syntax_option_type Synopsis - 1.81.0
  11. ^ <regex> - cplusplus.com
  12. ^ Regular expressions library (since C++11) - cppreference.com
  13. ^ 正規せいき表現ひょうげんライブラリ - cppreference.com
  14. ^ regex - cpprefjp C++日本語にほんごリファレンス

参考さんこう文献ぶんけん[編集へんしゅう]

外部がいぶリンク[編集へんしゅう]