正規表現

ゼロ幅アサーション①_\A_key-visual

^ との違いは ?

 前回は、先頭の位置にマッチする正規表現である、 ^ について学習しました。

今回説明する \A は ^ とよく似ています。

\A は ^ と同様に、先頭の位置にマッチする正規表現です。

但し、改行があった場合、その改行直後は先頭と判断されません。

フラグを用いても結果は同じです。

 以下で確認してみます。


この記事の難度は、入門〜基礎  Bクラスです。

(A: やさしい   →   E: 難しい)

 事前知識として、pythonから正規表現を扱う方法が必要になります。

難度       :
事前知識: Pythonの基礎文法(reモジュールを含む)。
学習効果:  ^ との違いを理解出来るようになる。

Contens  |   目次

Chapter1 Pythonで実行

Chapter1   Pythonで実行

フラグなし

 最初に、\A が先頭の位置にマッチする事を確かめましょう。

    re_meta11_1.py

        import  re

        pattern = re.compile("\Am")
        st ="mathematics"
        print(st)         
        result_iter = pattern.finditer(st)
        for   result   in  result_iter:
            print("-------- match ↓ ---------")        
            print(result.group())    
            print(result.span())    
                            


実行結果 ゼロ幅アサーション① \A _1

しっかりと先頭にマッチしています。

 次に、対象となる文字列が "mathe\nmatics" のように改行を含んでいるとします。

この場合 m の位置は、文字列の先頭の他、改行直後にも配置されています。

^ であれば、フラグを使う事により、改行直後の m にもマッチします。

しかし、\A はフラグを利用しても一致させる事ができません。

 まずは、フラグなしで実行してみます。

    re_meta11_2.py

        import  re

        pattern = re.compile("\Am")
        st ="mathe\nmatics"
        print(st)         
        result_iter = pattern.finditer(st)
        for   result   in  result_iter:
            print("-------- match ↓ ---------")        
            print(result.group())    
            print(result.span())    
                            


実行結果 ゼロ幅アサーション① \A _2

 やはり改行直後の m にはマッチしません。

今度はフラグを付けてみます。

    re_meta11_3.py

        import  re

        pattern = re.compile("\Am",flags=re.MULTILINE)
        st ="mathe\nmatics"
        print(st)         
        result_iter = pattern.finditer(st)
        for   result   in  result_iter:
            print("-------- match ↓ ---------")        
            print(result.group())    
            print(result.span())    
                            


実行結果 ゼロ幅アサーション① \A _3

 \A の場合、フラグを付けても結果は同様です。



 \A については以上です。

^ との違いを理解できました。

関連記事

基礎2

^ 行の先頭

正規表現: アサーション①
難度       : 入門〜基礎
事前知識: Pythonの基礎文法(reモジュールを含む)
学習効果: ^ を用いて、先頭の文字(改行直後も含む)にマッチさせる事が出来るようになる。
基礎2

\A 文字列の先頭

正規表現: アサーション①
難度       : 入門〜基礎
事前知識: Pythonの基礎文法(reモジュールを含む)
学習効果: ^ との違いを理解出来るようになる。
基礎2

$ 文字列の末尾

正規表現: アサーション①
難度       : 基礎
事前知識: Pythonの基礎文法(reモジュールを含む)
学習効果: 文字列の末尾に対する、$ による操作方法の習得。( $ の改行に対する動作も含む)
基礎1

\Z 文字列の末尾

正規表現: アサーション①
難度       : 入門〜基礎
事前知識: Pythonの基礎文法(reモジュールを含む)
学習効果: 末尾に対するマッチ。及び、$ との違いを会得出来る。
Pythonで正規表現を使う1

正規表現をPythonから使うには ?

正規表現: Pythonから使う
難度       : 入門
事前知識: Pythonの基礎文法
学習効果: pythonから正規表現を使う一連の流れを掴む
メタキャラクタに馴染む_key-visual

ハロー ! メタキャラクタ

正規表現: メタキャラクタの概要
難度       : 入門
事前知識: 不要
学習効果: メタキャラクタの概要を掴む
正規表現の概要

正規表現とは?

正規表現: 概要
難度       : 入門
事前知識: 不要
学習効果: 正規表現の概要を知る
正規表現の概要

PR