90483


エクセルの各セルに入力された文章の末尾に 。 がついているか、ついていないかを判断するプログラムを作ろうとしております。

セル内で改行されていない一行の文章であれば以下コードで要件を満たすことが出来ました。

しかし、C2の値をセル内で改行した以下文章だと合致させることが出来ませんでした。

C2  
①これからどうなるか、とても心配です。  
②分からないけど。

セル内で改行した文章でも文章の末尾に 。がついているか、ついていないか 判断するコードを作成することは可能でしょうか。  
初歩的な質問とは思いますが、何卒よろしくお願いいたします。

[code]

    import openpyxl
    import re
    
    wb = openpyxl.load_workbook(r"sample.xlsx")
    
    ws = wb.active
    source = ws["C2"].value 
    '''
    C2
    これからはじまる大ニュース。
    '''
    
    pattern = r"$。"   
    
    if re.search(pattern, source):
        print("合致")
    
    '''
    実行結果
    合致
    
    '''
    
[/code]


CC BY-SA 4.0
2022-08-10T04:22:21.003
90482
2022-08-10T04:47:36.150
2022-08-10T04:34:49.903
3060
51133
question
python 正規表現 openpyxl
エクセルのセル内に入力された文章を正規表現でマッチさせたい


正規表現で「行の末尾」を表す特殊記号 `$` は **パターンの末尾** で使う必要があります。  
(末尾以外に出てくる `$` は単なる記号として処理されます)

一行の文章の場合にうまくいっている理由は不明ですが、以下のように記述してみてください。

**変更前:**

[code]

    pattern = r"$。" 
    
[/code]

**変更後:**

[code]

    pattern = r"。$" 
    
[/code]


CC BY-SA 4.0
2022-08-10T04:40:02.793
90483
2022-08-10T04:47:36.150
2022-08-10T04:47:36.150
3060
3060
90482
answer