1. 程式人生 > >正則表示式09-正則中r的作用

正則表示式09-正則中r的作用

r的作用

>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\
>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

說明

Python中字串前面加上 r 表示原生字串

與大多數程式語言相同,正則表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正則表示式裡將需要4個反斜槓"\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正則表示式裡轉義成一個反斜槓。

Python裡的原生字串很好地解決了這個問題,有了原生字串,你再也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀。

>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a

相關推薦

表示式09-r作用

r的作用 >>> mm = "c:\\a\\b\\c" >>> mm 'c:\\a\\b\\c' >>> print(mm) c:\a\b\c >>> re.match("c:\\\\",mm).gro

表示式之C程式使用

POSIX規定了正則表示式的C語言庫函式,詳見regex(3)。我們已經學習了很多C語言庫函式的用法,讀者應該具備自己看懂man手冊的能力了。本章介紹了正則表示式在grep、sed、awk中的用法,學習要能夠舉一反三,請讀者根據regex(3)自己總結正則表示式在C語言中的用法,寫一些簡單的程式,例

python 表示式找出字串的純數字

1、簡單的做法 >>> import re >>> re.findall(r'\d+', 'hello 42 I'm a 32 string 30') ['42', '32', '30'] 然而,這種做法使得字串中非純數字也會識別 >

MSSQL 表示式在資料庫程式設計使用,其實真的不懂SQL了

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                一直以為單純的查詢分析資料表,基本上都OK。今天遇到一位朋友提出。郵件地址欄位,去掉163,sina,china感覺很簡單,不就是like not like 

js字串表示式法則pattern、RegExp、flags、exec

全棧工程師開發手冊 (作者:欒鵬) js中字串正則表示式 正則法則的應用 正則表示式 = /pattern/flags 其中flags中g表示匹配全部,i表示不區分大小寫,m表示匹配多

js 表示式去除html字元所有的標籤(img標籤除外)

廢話不多說,直接上程式碼:description.replace(/<(?!img).*?>/g, ""); 如果保留img,p標籤,則為:description.replace(/<

android 通過表示式遍歷html所有的img標籤

String reg = "<img.*?>"; Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.matcher(sendString);//sendString為網

表示式:只保留字串的漢字和字母

echo iconv('utf-8', 'gbk', preg_replace('/[^a-zA-Z\x{4e00}-\x{9fa5}]/u', '', iconv('gbk', 'utf-8', $str_word)));exit;

Python 表示式從Windows路徑獲取資料夾

<pre name="code" class="python">1. Regular Expression ^([a-zA-Z]:|\\\\[a-zA-Z0-9_.$ -]+\\[a-z0-9_.$ -]+)?((?:\\|^)(?:[^\\/:*?"<&

表示式切割詳細地址的省、市、區(例如:address=陝西省延安市寶塔區寶塔山街道寶塔山景區,切割之後為province=陝西省, city=延安市, county=寶塔區寶塔山街道寶塔山景)

將詳細地址切割為省市區工具類(還要切割到鎮、村莊參考博文:https://blog.csdn.net/superSubfn/article/details/80290491) package com.camelot.attendance.util; import java.util.Arr

Java呼叫replaceAll方法通過表示式把HTML字串的img標籤的src預設屬性值uri補全

class Test { public static void main(String[] args) { String domain = "http://avatar.csdn.net";

Python 表示式提取Windows路徑檔名

1. Regular Expression [^\\/:*?"<>|\r\n]+$ eg. c:\foler\file.ext Extract: file.ext 2. Python Code import re subject = 'c:\\foler

[C/C++標準庫]_[初級]_[使用表示式過濾Windows檔名的非法字元]

場景 1.Windows和macOS的檔名有自己的命名規則, 特別是Windows的檔名限制了不允許使用的特殊字元. 在使用這些檔名新建檔案時會建立失敗. 說明 1.在前面的文章裡在Windo

表示式——JAVA與JS的使用

一、JAVA: <code class="hljs ruby has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizin

表示式匹配雙引號的內容

匹配表示式:\"([^\"]*)\"匹配結果實驗: String t = "\"world\""; String p = "\"([^\"]*)\"" ; Pattern P=Pattern.compile(p);      Matcher matcher1=P

使用表示式刪除一個字串特定兩個字元之間的所有字元

刪除兩個%之間的所有字元: String s = "http://media.advu.cn/stat/index?f=1001&eventid=266&tvType=

表示式獲取sql語句的表名

一個小的實驗,裡面要獲取基本增刪改查的sql語句對應的表名,以下是在W3schoo基本教程的集中sql型別 SELECT 列名稱(*所有列) FROM 表名稱 SELECT 列名稱 FROM 表名稱 where 條件 INSERT INTO 表名稱 V

使用表示式對xml檔案資料字典進行整理

在工作中,需要對xml檔案中資料字典進行整理。 SQL> create table t1(text varchar2(4000)); 表已建立。 SQL> insert into t1 values(' <enumeration id

Scala表示式提取文件任意數字

      通常我們通過hdfs讀取文件資料時,都會伴隨許多空格等特殊的分割符號,此時需要提取出裡面的資料時可以用到正則表示式。其實如果只是一般的有規律性的分隔符號 如每個數字中間一個空格符號來進行分割的話,通過簡單的字串操作如split()即可,但是遇到了沒有規律性的時候

利用表示式從檔案路徑匹配檔名

第一種,檔名不包含副檔名: 正則表達寫法:([^<>/\\\|:""\*\?]+)\.\w+$ java中的寫法: …… String reg = "([^<>/\\\\|:\"\"\\*\\?]+)\\.\\w+$+"; Matcher m = P