

下記のコードで`%`の部分は何をしているのでしょうか？

**該当部分**

[code]

    l_regex = re.compile(r'^%s*' % character[0])
    r_regex = re.compile(r'%s*$' % character[0])
    
[/code]

**コード全体**

[code]

    import re
    
    def strip_text(text, *character):
        if character:
            print(character)
            l_regex = re.compile(r'^%s*' % character[0])
            r_regex = re.compile(r'%s*$' % character[0])
        else:
            l_regex = re.compile(r'^\s*')
            r_regex = re.compile(r'\s*$')
        text = l_regex.sub('', text)
        text = r_regex.sub('', text)
        print(text)
    
    strip_text('    前後のスペース文字を取り除く    ')
    strip_text('XXXX前後のXを取り除くXXXX', 'X')
    
[/code]


CC BY-SA 4.0
2018-12-27T13:41:22.620
51566
2018-12-28T05:21:02.640
2018-12-28T05:21:02.640
3060
31606
question
python 正規表現
Pythonの正規表現で使用しているパーセント記号は何？


これは文字列をフォーマット文字列として扱って置換しています。`%`形式の文字列フォーマットです。`%s` が後から渡された文字列に置換されています。

[code]

    >>> 'aaa%sbbb' % 'あ'
    'aaaあbbb'
    >>> 'aaa%sbbb' % 'い'
    'aaaいbbb'
    
[/code]

このコードの場合は、与えられた文字列の1文字目 `character[0]` ごとに動的に正規表現を作るためにフォーマット文字列を使っています。

なお、`%`を使って文字列をフォーマットするのは現在では古いやり方で、f文字列を使う新しいやり方があります。2016年の記事ですが[「Pythonの新しい文字列フォーマット
: %記号、str.format()から文字列補完へ」](https://postd.cc/new-string-formatting-in-
python/)などを参照してください。


CC BY-SA 4.0
2018-12-27T14:34:43.027
51568
2018-12-27T14:34:43.027
19110
51566
answer