簡単な入門正則表現-第六章の元文字と修飾子

6225 ワード

<style>獛content-region{background-mage:url(http://p.blog.csdn.net/images/p_blog_csdn_net/rcom10002/EntryImages/20081027/watermark.gif"";?content-region h 3{border:1 px dotted_;background-カラー:padding:10 px;font-size:24 px;?;font-size:16 px;line-height:28 px;text-decoration:none;text-indent:32 px;}咻咻咻content-region.regex-pattern{font-style:oblique;font-family:“Courier”Courier、monoospace;background-from;border-top-style:sold;border-right-style:none;bord-bott-style:sold;border-left-style:none;bord-top-bord-bord;perpder;border-bottom-width:1 px;border-left-width:1 px;border-right-カラー:葏FF0000;border-left-カラー:(zhi)FF 0000;padding:0 px 5 px 5 px;Courier,monoospace;background-カラー;border-top-style:sold;border-right-style:none;border-bott-style:sold;border-left-style:none;bord-top-bord-bord:96 x;border-bottom-width:1 px;border-left-width:1 px;border-right-カラー:_;border-left-カラー:_;padding:0 px 5 px 5 px;?3333339;3333339;?3333309;33333333991;333333339;?3333333333333333991;;????菵};dding:padding:0 px:0 px:0 px:0 px:0 px:0 px:0 px:0 px;-style:dotted;border-left-style:dotted;width:atot;菗{border:1 px dotted铀padding:16 px;background-ft 9 f 9;magin-top:16 px;margin-bottom:16 px;margin-bottom:16 px;margin-left:64 px;葷
简单入门正则表达式 - 第六章 元字符与修饰符
一、転義を使う
メタ文字に接する前に、正規表現の意味を理解することは非常に重要です.前のいくつかの章では、いくつかの変換に関する内容に触れました.ここで、正規表現の意味を詳しく調べてみます.
正規表現の要素文字は特定の意味を持つ文字です.たとえば「.」は、改行以外の任意の文字にマッチします.これに似ているのは「?」です.を選択します.マッチングに参加するスタイルを0回または1回繰り返します.それぞれに特別な意味が与えられている以上、自分と同じ普通の文字とマッチすることはできません.例えば「.」、「)」、「」は直接にマッチする文字として使用することはできません.
	var myArray = new Array();
	...
	if (myArray[0] == 0) {
	...
	}
	
上のJavaScriptコードについては、正規表現myAray[0]を配列要素myAray[0]に合わせていますが、結果は私達が予想していたようには見えませんでした.これは[0]が正規表現では文字セットとして登場しています.マッチングの内容は[0]ではなく、[0]です.私たちが欲しいのではなく、「myAray[0]」です.
このようにして、私たちは転送機能を含む正規表現のmyAray/[0/]を交換してもう一度テストを行いましたが、今回はうまくマッチしました.
简单入门正则表达式 - 第六章 元字符与修饰符
「/」は意味を転換する役割を持つ元の文字で、元の文字である以上、文字の「/」とは一致しませんが、「/」の機能は他の元の文字だけを転送するのではなく、自身も移行できるので、文字の「/」にもマッチします.文字列「C:/WINDOWS」に対応する正規表現はC/WINDOWSであるべきです.
二、元文字
正規表現の元の文字は、「.」のようなテキストマッチングに参加する2つのクラスに分けられます.もう1つは、正規表現の文法の一部として存在します.「?」「[]」「」など.実際のアプリケーションでは、「空白」の元の文字が多く発見されます.ここでは一般的な正規表現の要素文字を紹介します.
  • /w「/w」は英数字と数字と下線しか一致しないので、元の文字「.」とは違って、「w」は記号や句読点と一致しないからです.英語以外の言語では、「/w」の解釈が違っています.設定されている言語の文字やアルファベットと一致する場合があります.「w」の関連文はASCIIではなくUnicodeですので、それに合う範囲がもっと広くなります.今は「w」の機能を見てみましょう.まず正規表現/w+を作成して、文字列「ハローワールド!世界こんにちは!」をテスト対象としてマッチングした結果、「ハローワールド!世界こんにちは!」
  • /W「/W」と「/w」のマッチング内容が逆であれば、/wでは一致しない内容であれば、すべてマッチングできます.つまり、/Wはアルファベットではなく、数字とアンダースコアの内容にマッチします.しかし、マッチング内容も絶対ではなく、使用している具体的な正規のエンジンによって決まります.私達も「ハローワールド!世界こんにちは!」例として、正規表現/W+マッチングを利用した結果、「ハローワールド!世界こんにちは!」
  • /d「/d」は数字に合わせて[0-9]の略語に相当します.前章電話番号検査の例を振り返ってみますと、該当する文字列は「+086-800-8888」で、以前に作成された正規表現は/+?[012345789]-[012345454556789]、{3}-[01234545454545454545454545454549]、{3}であります.-/d{3}-/d{4}
  • /Dは「/W」に似ています.「/d」にも対応する「/D」があります.これは数字以外の任意の文字とマッチします.
  • 三、空白と非空白文字
  • /s正規表現検索をすると、テキストに組み込まれている非印刷文字に遭遇することが多いです.これらの文字は私たちの検索作業の邪魔になることがありますので、まず削除したほうがいいです.元文字「/s」は複数の非印刷文字を表しています.
    記号の意味
    [/b]
    チェックアウト(Backspace)
    /f
    改ページ符
    /n
    行の区切り
    /r
    回車符
    //t
    水平タブ
    //v
    垂直タブ
  • /Sは「/d」「/w」に似ています.「/s」に対応する「/S」もあります.該当する内容は非空白文字です.
  • 四、POSIX文字類を使用する
    いくつかの正規表現エンジンでは、POSIXという特殊な機能を実現しています.POSIXは、簡単に一般的な文字セットとして見られます.たとえば、0から9の間の数字を/dで表しています./sは空白文字を表しています.POSIXの[:alnum:]を使うと、正規表現[A-Za-z 0-9]を表します.この中のalnumはalphanumericの略語であることから、POSIXは複数の文字セットを使用する代わりに命名されています.これは正規表現を作成するだけではなく、時間を節約して便利に提供されています.正規表現エンジンによっては、名前の付け方が違ってくる可能性があります.POSIXを利用した構造を要求します.正規表現の前に、使用されているエンジンサポートの正しいPOSIX形式を知る.
    以下はEmEditorでPOSIXを使って小さな実験を行います.まずヘルプを確認して、EmEditorではどのようなPOSIX文法が使えるかを確認してください.以下の表にはすべての利用可能なPOSIX文法がリストされています.
    Charcter Class es
    The follwing character clases are used within a character set such as".For instance,[:space]]is the set of all whitpace characters.
    alnum
    Any alphanumeric character.
    アルファ
    Any alphabeetical character a-z,A-Z,and other character.
    ブラック
    Any blank character,eigther a space or a tab.
    cntrl
    Any control character.
    digit
    Any digit 0-9.
    graph
    Any graphica character.
    lower
    Any lowercase character a-z,and other lowercase character.
    print
    Any printable character.
    put
    Any puncture.
    スペース
    Any whites pace character.
    スーパー
    Any upercase character A-Z,and other up percase character.
    xdigit
    Any hexadecimal digit character、0-9、a-f and A-F.
    ワード
    Any word character-all alphanumeric characters plus the undersscore.
    unicode
    Any character whose code is greater than 255.
    简单入门正则表达式 - 第六章 元字符与修饰符
    テーブルから[:digit:]の役割は[0-9]と全く同じであることが分かりますので、例のSQL文からマッチする内容を検索すると16と24のマッチングに成功します.
    五、修饰符
    正規表現を使う場合、マッチするモードを制御するためにいくつかのオプションが必要です.たとえば、私たちの表現はアルファベットの大きさによって厳密にマッチする必要がありますか?表現は行動単位で動作しますか?正規表現をサポートするエディタの多くは、「大文字と小文字を区別するかどうか」を提供します.のオプションを選択します.プログラム言語では正規表現機能を使用していますが、特に操作オプションが指定されていない場合は、その結果は行単位で返されます.修飾子の詳細な使用については、後の章で詳しく説明します.
    简单入门正则表达式 - 第六章 元字符与修饰符