python正则表达式匹配反斜杠的操作方法

  

  

正则需要把原始字符串不被转义的条件下传递给正则模块,正则再去转义。
  r r表示后面的字符串为原始字符串,防止计算机将\理解为转义字符。
  <代码> r ' ^ \ \ $ 首先按照原始字符串给到编译函数,正则再把<代码> r ^ \ \ $”中的 \ '翻译成<代码> \

        反斜杠=' \ \ '   打印(反斜杠)   regular_backslash=re.compile (r ^ \ \ $)   print (regular_backslash.search (regular_backslash)      

金额5.00中的<代码>。> \。> 匹配可以所有的字符,需要<代码> \。表示点。

        进口再保险   #匹配日期   date_regular=re.compile (r ' ^ (\ d {4}) - (\ d {2}) (\ d{2})美元”)   print (date_regular.search (' 2017-33-12 '))      5.00 #匹配金额比如5等金额   money_regular=re.compile (r ' ^ \ \ d {1,}。(\ d {1}) $ | ^ (\ d{1})美元”)   print (money_regular.match (5.8))      #匹配纯数字   number_regular=re.compile (r ^ \ d {1,} $”)   print (number_regular.search (5))      

  

在Python普通字符串中

  

在Python中,我们用“来转义某些普通字符,使其成为特殊字符,比如

        在[1]:打印(abc \ ndef) # ' \ n '具有换行的作用   美国广播公司   defg      在[2]:打印(abc \ tdef) # \ t的具有制位符的作用   abc defg      

我们还可以用“来转义特殊字符,使其成为普通字符,比如

        在[3]:打印(abc \ \ tdef) #使“\”成为一个普通的字符,没有转义作用   abc \ tdef      在[4]:打印(“abc \“tdef”) #使“成为一个普通的字符,不再需要和另一半单引号“配对   abc 'tde      

所以,在python普通字符串中,我们不能以奇数个“结尾,这样会导致结束的的引号转义成一个纯字符,从而使得这段字符串没有引号来结束。

  

  

我们在字符串前加一个“r”来表示原生字符串,比如r 'abc”。原生字符串中的特殊字符的特殊含义将会被剥夺掉,如下

        在[5]:打印(r 'abc \ ndefg”) # ' \ n '没有换行的作用,仅仅是一个普通的字符串   abc \ ndefg      在[6]:打印(r 'abc \ tdefg”) # ' \ t '没有制位符的作用,仅仅是一个普通的字符串   abc \ tdef      

这里有一个奇怪的问题,在原生字符串中,虽然”成为了一个普通的字符串,但我们同样不能以奇数个“字符串结尾,这是因为Python正则表达式的原因,在正则表达式中我们将会解释这个问题。

  

  

Python正则表达式中会有一些不同,正则表达式中指定了一些元字符(元字符),如下。^ $ * + & # 63;{}[]\ | ()
  它们都具有特殊的含义,“也属于元字符。”既属于Python中的特殊字符,也属于正则中的元字符,所以使用时得非常小心。那么在正则中,”的作用是什么呢?我们看一个例子

        在[7]:re.search ('。”、“sd.f”)   [7]:& lt; _sre。SRE_Match对象;跨度=(0,1),配=s比;      在[8]:re.search (‘\。”、“sd.f”)   [8]:& lt; _sre。SRE_Match对象;跨度=(2、3),配='。'祝辞;[9]:re.search (“\ n”、“sdfd \ nfds”) [9]: & lt; _sre。SRE_Match对象;跨度=(4、5),配=' \ n '比;      ”“”   “。”作为一个元字符,它的特殊含义是匹配任意一个字符,   而当我们在其前面加“\”后,它的特殊含义消失了,匹配到的是“。”;   而且“\”依然可以把Python中某些字符转义成特殊字符。   " " "      

所以,”的作用是剥夺元字符的特殊含义,使其成为一个Python字符,所以它还是会具有在Python普通字符串中的转义作用,比如“\ n”依然表示换行。所以,“既是正则中的一个元字符,又是Python中的一个特殊字符。那么我们该如何匹配到纯字符”(无任何特殊意义)?

  

在正则中”的作用是把元字符转义成Python字符串文字(Python字符串),所以正则中的“\”其实是其实是Python字符中”的,它仍然还具有转义作用,所以在正则中我们还得对每个“再进行转义一次,即“\ \”,这样就可以匹配到纯字符”了。看下面例子

        在[10]:re.search(“\ \ \ \”,“女性性功能障碍\ nfds”) #目标字符串中没有纯字符“\”,所以匹配为空      在[11]:re.search(“\ \ \ \”,“女性性功能障碍\ \ nfds”)   [11]:& lt; _sre。SRE_Match对象;跨度=(3、4),配=' \ \ '比;# Python字符串中,“\ \”就是纯字符“\”

python正则表达式匹配反斜杠的操作方法