正则表达式

详细请看:正则表达式30分钟入门教程
http://help.locoy.com/Document/Learn_Regex_For_30_Minutes.htm

讲解:

元字符如下. ^ $ * + ? { } [ ] | ( ) \

^ $ * + ? 解释如下

符号 语义
* 匹配次数一次或多次
. 匹配任意一个字符
.* 匹配除换行所有字符任意次数
|
\b 匹配一个空格(英文原文:Word boundaries)
\bhe\b 匹配单词he
he 匹配包含he的字符串,例如he、hello、them
^a 以a开头的字符串
a$ 以a结尾的字符串
bucket 匹配字符串 bucket
^.2$ 以任意开头 以2结尾的双位字符(表示匹配一行)
* 匹配前面的子表达式零次或多次
.* 匹配任意多个字符为一组
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
?: 取消组的权限

用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。

其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

abc* 匹配 abccc ab abc (贪婪匹配,默认匹配最多c)
abc*? 匹配 ab (惰性匹配,默认匹配最少c)

转义字符
\跟元字符去除特殊功能
\跟普通字符实现特殊功能

\1 代表第一个小括号捕获的
\2 代表第二个小括号捕获的,以此类推

\d 匹配一个数字 等价于[0-9]
\D [^0-9] 任意非数字
\s [\t\n\r\f\v] 任意空白字符(空格)
\S [^\t\n\r\f\v] 任意非空白字符
\w [a-zA-Z0-9_] 匹配任何字母数字字符
\W [^a-zA-Z0-9_]
\b 匹配特殊字符边界 例如 空格, &#
\t 制表符
\n 换行符
\r 回车符
\\ \
\. .

[[::]] 匹配字符簇

[[:alpha:]] 任何字母
[[:digit:]] 任何数字
[[:alnum:]] 任何字母或数字
[[:space:]] 任何空白字符
[[:upper:]] 所有大写字母
[[:lower:]] 所有小写字母
[[:punct:]] 所有标点符号
[[:xdigit:]] 任何十六进制数字,相当于[0-9a-fA-F]

字符簇:
[] 匹配...所有的单字符
[^...] 匹配除了...以外的单字符(取反)

[a-z] 匹配所有的小写字母 
[A-Z] 匹配所有的大写字母 
[a-zA-Z] 匹配所有的字母 
[0-9] 匹配所有的数字 
[0-9\.\-]  匹配所有的数字,句号和减号 
[\f\r\t\n]  匹配所有的白字符
^[a-zA-Z_]$ 匹配所有的单个字母

[^a-z] 除了小写字母以外的所有字符 
[^\\\/\^] 除了(\)(/)(^)之外的所有字符 
[^\"\'] 除了双引号(")和单引号(')之外的所有字符

花括号{} 用来确定 前面的内容 出现的次数。
{x} 字符或字符簇只出现x次
{x,} 字符或字符簇出现x或更多的次数
{x,y} 字符或字符簇至少出现x次,但不超过y次

^[[:alpha:]]{3}$ 匹配所有的三字母单词
^a{2,4} 匹配以aa,aaa或者aaaa开头
^a{2,}$ 匹配只有a、并且两个字母以上的字符串
a{2,}  两个以及以上a
\t{2} 两个制表符
.{2} 匹配任意两个字符

例子1:

i=python
from=AUTO
to=AUTO
smartresult=dict
client=fanyideskweb
salt=1527990461914
sign=de9dc50018fd36e21f75b546c75ea5fa
doctype=json&version=2.1
keyfrom=fanyi.web
action=FY_BY_REALTIME
typoResult=false


用支持正则表达式替换的软件(例如sublime3)
用^(.*)=(.*)替换"\1":"\2",解释如下 ^(.\*)=(.\*) 匹配一个字符串,以任意开头,以任意结尾,中间以=分隔
"/1":"/2" 捕获的第一()内容、第二()内容分别用" "修饰,两者以:分隔

"i":"python"
"from":"AUTO"
"to":"AUTO"
"smartresult":"dict"
"client":"fanyideskweb"
"salt":"1527990461914"
"sign":"de9dc50018fd36e21f75b546c75ea5fa"
"doctype=json&version":"2.1"
"keyfrom":"fanyi.web"
"action":"FY_BY_REALTIME"
"typoResult":"false"

例子2:
将例子1反向替换
用正则表达式^"(.*)":"(.*)",$替换\1=\2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容