正则表达式 Regular expression ,常常被简写为 regex .在各种匹配场景下有着十分广泛的使用.
测试文本:
唐诗的发展
发展
唐诗大致可分作四个阶段:初唐、盛唐、中唐和晚唐。初唐通常指唐朝建国至唐玄宗之前的约100年,盛唐指唐玄宗至代宗的约50年,中唐是德宗至文宗的约50年,而晚唐则是文宗后期至唐朝灭亡的约70年。实际上阶段之间并无严格的分界。
初唐
“初唐”是唐诗的准备时期,诗歌尚受六朝绮丽诗风影响。主要诗人有王勃、杨炯、卢照邻和骆宾王等,合称初唐四杰。而宫廷诗人沈佺期、宋之问亦继承六朝风格,诗风婉丽优美,并完善近体诗之格律。
而陈子昂是初唐的复古派,倡导革新。他反对六朝文风,追求汉魏风骨,对当时诗歌风气产生一定影响。
此时律诗体制渐次完成,格式固定下来,五七言绝句地位亦得提高。
盛唐
“盛唐”是唐诗的成熟时代,政治安定和社会繁荣,奠定了盛唐的坚实基础,再经初唐的准备时期,诗歌创作进入成熟期,各体俱备,作品内容充实,风格也多样性。
山水田园派的王维、孟浩然和储光羲,描写退隐生活和田园山水,诗风恬静清朴,流露浓厚佛道和退隐思想,追求清静闲适的精神生活,作品以五言为主。
边塞派的岑参、高适、王昌龄和王之涣,作品以七言为长,描写边塞瑰奇风光和军旅战争生活,表现征人离妇的思想感情,诗风奔放雄伟,富于浪漫气质,以气象雄浑见长。
“诗仙”李白是浪漫派诗人。作品善于描写山川风景,创造了艺术的鲜明形象,并具有雄放豁达之性格,李白景仰六朝诗人谢灵运、谢脁,他们的山水诗影响了李白,而李白也诗也受乐府民歌风格影响。
杜甫是社会派诗人,趋向现实主义,取材于政治兴亡、社会动乱、战事徭役、饥饿贫穷和贫富悬殊。诗中有儒家思想,悲天悯人,被尊为“诗圣”。作品众体兼善,五七言古体、律诗,无所不工。杜甫律诗注重声律对仗,语言锤炼,为历代典范之作,主要风格为沉郁顿挫。杜甫并开创“即事名篇”的新乐府诗,描写民生疾苦,下启中唐新乐府运动。
中唐
“中唐”是唐诗的转折时代,主要文学特征为浪漫主义精神衰退,现实主义进一步发展和成熟,主要诗人有社会派的张籍、白居易和元稹,新乐府运动成为主要潮流,诗歌题材写实,用新乐府广泛描写社会现况,扩大社会文学范围,认真汲取过去诗经和乐府歌辞中的创作方法,提高作品的思想性和艺术性。
中唐另有几位诗人,在风格上别成一派。韩愈、孟郊和李贺为奇险派诗人,韩诗风格刚健激昂,在历代获得不少文人推崇,曾被视为仅次李杜的唐代诗人,而孟诗以苦吟风格得名,诗韵清奇而挚情,李贺诗亦以诗新奇而具变化名,有诗鬼之称。韦应物、柳宗元则是山水田园派诗人,柳宗元山水诗尤峻洁清丽,韦诗清澹高华,格高气远,许多论者以为不下王、孟。
晚唐
“晚唐”政治日益衰微,在文学创作上亦有所反映。杜牧、李商隐、温庭筠、许浑为晚唐代表诗人。杜牧长于七言绝句,七律有嶙峋耿介之风。李商隐以七律闻名,诗情婉意深,意韵远长。温诗以七言歌行最精,可言唯美文学集大成者,许浑则工于五七律,诗风宁和真挚。
其后皮日休和庄柯铭是社会派诗人。
Poetry is the masterpiece of the ancient China .
- 匹配任意字符
.
:
.x.
: 可以匹配任意两个字符包围的x
r.
: 点可以匹配任意的单个字符
vim在命令模式下输入/ ... /
可以查找到下列结果
- 匹配行首:脱字符
^
:
^唐诗
: vim在命令模式下输入/^唐诗
:1,$s/^/中华文明源远流长/g
: 行首添加中华文明源远流长
:1,$s/^中华文明源远流长//g
: 删除行首的 中华文明源远流长
\.^
:匹配以 .
开头的行
\.$
: 匹配以 .
结尾的行
- 匹配行尾:Dollar字符
$
:
诗人。$
: 匹配行尾的诗人。
^$
: 匹配空行. 可以在命令模式下按o
开启新的一行然后使用^$
测试查找匹配
^ $
: 匹配有单个空格组成的行 - 匹配字符组:
[...]
[a-zA-Z0-9]
:匹配数字和字母的一个字符
^[A-Z]
: 可以用于查找以大写字母开始的行
[^A-Z]
:匹配非大写字母 - 匹配零个或者多个字符 : 型号
*
:
x*
:匹配零个或者多个x
:1,$s/ */ /g
: 可以将vim中的多个空格改成单个空格
.*
: 由于正则表达式总是匹配符合模式的最长字符串,所以该模式可以匹配整个文本行.
[-0-9]
:
[0-9-]
: 这和上面的表达式的意思是相通的可以匹配的是 连接符和数字.-
的位置必须在左方括号之后和右方括号之前. - 匹配固定的次数的子模式:
\{times\}
或者\{min,max\}
花括号里可以 指定匹配的次数或最小和最大次数
[a-zA-Z]\{2,7\}
: 可以匹配长度为2-7的字母序列
[a-zA-Z]\{7\}
: 可以匹配长度为7的字母序列
.\{7\}
: 可以匹配长度为7的字符序列 - 保存已有字符:
\(...\)
^\(.\)
: 匹配行首字母保存在寄存器1中
^\(.\)\1
: 匹配行首前两个相同的字符并使用\1
引用它