찾다

 >  Q&A  >  본문

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

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

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

阿神阿神2781일 전701

모든 응답(3)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-18 10:22:43

    정규식은 백슬래시 문자('')를 사용하여 특수 형식을 나타내거나 특별한 의미를 호출하지 않고 특수 문자를 사용할 수 있도록 합니다. 이는 문자열 리터럴에서 동일한 목적으로 동일한 문자를 사용하는 Python의 사용과 충돌합니다. ; 예를 들어 리터럴 백슬래시를 일치시키려면 정규 표현식이 이어야 하고 각 백슬래시가 일반 Python 문자열 리터럴 내부로 표현되어야 하기 때문에 '\'를 패턴 문자열로 써야 할 수 있습니다.

    사실 어떤 패턴을 맞추고 싶은지 이해가 안 되지만 위 방법으로 문제를 해결해야 합니다.
    원시 문자열을 사용하는 것이 좋습니다.

    회신하다
    0
  • 天蓬老师

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

    으아악

    이 규칙은 실제로 compile 이후

    입니다. 으아악

    그러면 물론 대상 문자열 ab*cd에서 ab*c

    과 일치할 수 있습니다.

    회신하다
    0
  • 黄舟

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

    일치하지 않으려면 r을 추가하세요.

    으아악

    회신하다
    0
  • 취소회신하다