zoukankan      html  css  js  c++  java
  • Escaping regex string in Python

    Q: I want to use input from a user as a regex pattern for a search over some text. It works, but how I can handle cases where user puts characters that have meaning in regex? For example, the user wants to search for Word (s): regex engine will take the (s) as a group. I want it to treat it like a string "(s)". I can run replace on user input and replace the ( with \( and the ) with \) but the problem is I will need to do replace for every possible regex symbol. Do you know some better way ?

    A: 

    Use the re.escape() function for this:

    4.2.3 re Module Contents

    escape(string)

    Return string with all non-alphanumerics backslashed; this is useful if you want to match an arbitrary literal string that may have regular expression metacharacters in it.

    A simplistic example, search any occurence of the provided string optionally followed by 's', and return the match object.

    def simplistic_plural(word, text):
        word_or_plural = re.escape(word)+'s?'return re.match(word_or_plural, text)
  • 相关阅读:
    ssm框架配置文件
    接口调用post请求参数在body中
    mysql三种连接方式
    jwt认证登录
    JWT工具类
    token的创建及解析
    IIS目录
    C# 增加多个分部类
    计算机知识
    Kibana 的安装(Windows版本)
  • 原文地址:https://www.cnblogs.com/osroot/p/3042607.html
Copyright © 2011-2022 走看看