検索

ホームページ  >  に質問  >  本文

python - 一个简单的正则匹配问题

In [33]: re.match('ab\\*c','ab*cd')
Out[33]: <_sre.SRE_Match object; span=(0, 4), match='ab*c'>

如上,没想明白为什么能匹配到,我的匹配模式中不是使用'\'将''转义成了字符串了吗,为什么最后还能匹配到结果??谢谢!!

阿神阿神2778日前695

全員に返信(3)返信します

  • ringa_lee

    ringa_lee2017-04-18 10:22:43

    正規表現では、バックスラッシュ文字 ('') を使用して、特殊な形式を示したり、特殊な意味を呼び出すことなく特殊な文字を使用したりできます。これは、たとえば、次のような文字列リテラルで同じ目的で同じ文字を使用することと衝突します。リテラルのバックスラッシュと一致するには、パターン文字列として '\' を記述する必要がある場合があります。これは、正規表現が でなければならず、各バックスラッシュは通常の Python 文字列リテラル内で表現される必要があるためです。

    実際、どのパターンに一致させたいのかわかりませんが、上記の方法で問題は解決されるはずです。
    生の文字列を使用することをお勧めします。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:22:43

    リーリー

    このルールは実際に compile 之后确实就是

    'ab\*c'

    那么当然可以匹配目标字符串 ab*cd 中的 ab*c compile 後に適用されます リーリー

    もちろん、ターゲット文字列 ab*cd 内の ab*c と一致することもあります🎜

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:22:43

    一致させたくない場合はrを追加してください。

    リーリー

    返事
    0
  • キャンセル返事