1. 程式人生 > >正則表示式轉義特殊字元

正則表示式轉義特殊字元

正則表示式中的特殊字元如下表:
這裡寫圖片描述

今天在用正則匹配HTTP響應體中的字串時遇到了一些問題,要匹配的資料包如下圖:
這裡寫圖片描述
要匹配其中的字串如下圖:
這裡寫圖片描述
很明顯由http響應頭Content-Type可以看出,響應體是JavaScript格式,要獲取的資訊是"張山2",其前後各有一個\",反斜槓是有意義的,它對"進行轉義。因專案需要,正則表示式寫在json陣列中,而json字串中的特殊字元也要轉義,也就是說要有雙重轉義,這在python re模組的官方文件也有說明,官方文件是這麼說的:
這裡寫圖片描述
官方文件說,要匹配一個\,你需要寫四個\作為匹配特徵,其中\\是正則寫法,而在字串中又要對\\分別進行轉義,也就是需要四個\

一開始沒弄明白,寫的特徵如下:

"value=\\\"(?<name>[^\"]+)\\\" name=\\\"user[name]\\\" id=\\\"user_name\\\""

總是不能匹配到張山2,錯誤有二,\"的匹配不對,[]的匹配也不對。
1、要匹配\",正確思路是:正則表示式中反斜槓\是特殊字元,需要轉義,而"不是特殊字元,不用轉義,所以應該是\\",然後在考慮在json字串中,需要轉義\",所以正確寫法是\\\\\"
2、要匹配[,正確思路是:正則表示式中[是特殊字元,需要轉義,所以是\[,然後考慮在json字串中,需要轉義\,所以正確寫法是\\[

綜上,整個匹配特徵應該為:
這裡寫圖片描述

相關推薦

表示式轉義特殊字元

正則表示式中的特殊字元如下表: 今天在用正則匹配HTTP響應體中的字串時遇到了一些問題,要匹配的資料包如下圖: 要匹配其中的字串如下圖: 很明顯由http響應頭Content-Type

表示式特殊字元

匹配前面一個表示式0次或者1次。等價於 {0,1}。 例如,/e?le?/ 匹配 "angel" 中的 'el',和 "angle" 中的 'le' 以及"oslo' 中的'l'。 如果緊跟在任何量詞 *、 +、? 或 {} 的後面,將會使量詞變為非貪婪的(匹配儘量少的字元),和預設使用的貪婪模式(匹

c#表示式過濾特殊字元

碰到了一個問題,要過濾字串中的|#|$|^|*|(|)|+|{|?|[|.這種字元。可是這些字元時正則表示式中的特殊字元,怎麼辦呢?有兩種辦法。 主要的思路是把 類似 “*” “[”的Relpace 為“\*”,"\["等 1,直接替換。 splitKey = split

表示式過濾特殊字元

String regEx="[`[email protected]#$%^&*()_\\-+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"; Pattern

Day004_Linux基礎命令之特殊符號與表示式萬用字元

特殊符號: . 點 cd . 表示當前目錄 ' '' 單引號,所見即所得 原封不動輸出 " ""雙引號,裡面的特殊符號會被解析執行   `` ====$( ) 先執行() 裡的命令,把結果留下 > 重定向符號  先清空檔案內容, 再追加檔案最後一行 &

表示式 -轉義字元

常見的HTML實體字元特殊符號命名實體十進位制編碼特殊符號命名實體十進位制編碼&#32;!&#33;"&quot;&#34;#&#35;$&#36;%&a

表示式 轉義字元(轉)

字元匹配語法: \d   匹配數字(0~9) ‘\d’匹配8,不匹配12; \D   匹配非數字 ‘\D’匹配c,不匹配3; \w   匹配任意單字元 ‘\w\w’ 匹配A3,不匹配@3; \W   匹配非單字元 ‘\W’匹配@,不匹配c; \s   匹配空白字元 ‘\d\

Python中表示式對單個字元,多個字元,匹配邊界等使用

         Regular Expression,正則表示式,又稱正規表示式、正規表示法、正則表示式、規則表示式、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),是電腦科學的一個概

C# 表示式檢查輸入字元

public class Validator 2 { 3 #region 匹配方法 4 /// <summary> 5 /// 驗證字串是否匹配正則表示式描述的規則 6

表示式-校驗字元表示式

一丶概述 業務需求要檢驗一些字串,特地收集了一些關於字元的正則表示式 基礎知識:Java 正則表示式 常用正則表示式 二、程式碼 1 漢字:^[\u4e00-\u9fa5]{0,}$ 2 英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

js利用表示式修改某個字元

   js中由於沒有replaceAll()方法,需要替換字串的某些字元時候,得重複呼叫replace()方法,很是累贅。  可以採用正則表示式處理,如以下程式把toolsStartTime中的‘-’替換為‘/’。     var

表示式特殊符號

特殊符號 代表意義 [:alnum:] 代表英文大小寫字元及數字,即0~9、A~Z、a~z [:alpha:] 代表任何英文大小寫字元,即A~Z、a~z [

python re.sub 表示式過濾指定字元

re.sub(pattern, repl, string, count=0, flags=0) Return the string obtained by replacing the leftmost non-overlapping occurrences o

開啟檔案獲取檔名,表示式獲取特定字元

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.

關於表示式匹配任意字元

今天在Java中想使用正則表示式來獲取一段文字中的任意字元。於是很隨意得就寫出如下匹配規則: (.*) 結果執行之後才發現,無法獲得換行之後的文字。於是查了一下手冊,才發現正則表示式中,“.”(點符號)匹配的是除了換行符“/n”以外的所有字元。同時,手冊上還有一句話:要匹配

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

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

表示式的常用字元整合文件

1、普通字元 匹配規則:匹配相應的普通字元 e.g. In [9]: re.findall("abc","abcksjdabclkjks") Out[9]: ['abc', 'abc'] 2、或: 元字元:ab | cd  匹配規則:匹配|兩邊任意一個正則表示式符合的

表示式常用匹配字元大全

1.正則表示式 直接量字元 字元 匹配 \o //NULL字元(\u0000) \t //製表符(\u0009) \n //換行符(\u000A) \v

linux之表示式特殊符號的含義

廢話不說,直接上圖 萬用字元與正則表示式 容易混淆,首先要明白二者是不同的,個人感覺萬用字元用於Linux的shell命令(如檔名相關操作)中,而正則表示式用於文字內容中的字串

PHP中關於表示式匹配任意字元(包括換行符)的寫法

今天在想使用正則表示式來獲取一段文字中的任意字元。於是很隨意得就寫出如下匹配規則: (.*) 結 果執行之後才發現,無法獲得換行之後的文字。於是查了一下手冊,才發現正則表示式中,“.”(點符號)匹配的是除了換行符“/n”以外的所有字元。同時, 手冊上還有一句話:要匹配包括