md笔记使用正则表达式为中英对照文章或歌词分别设置中英文段落格式
特别感谢我纸鹿大佬的指导,表白我纸鹿!
引子
有时我们想要收藏一些文章或歌词,并保留其英文原文细细品味,为了突出中英文对照需要分别为中英文段落设置格式,如为英文段落设置斜体,为中文段落设置粗体。此时由于中英文段落交错逐段对照,手动设置格式工作量巨大且无趣,此时可以使用正则表达式进行批量操作
操作
在靠谱的文本编辑器
(《Marktaxt》的正则功能就十分不靠谱)中打开替换功能(一般可用ctrl+h快捷键)欲选中英文段落,在“查找”中输入
(^[a-zA-Z].*)
;欲选中中文段落,则输入(^[\x{4e00}-\x{9fa5}].*)
欲使英文段落斜体,即在英文段落前后插入“*”,在“替换”中输入
*S1*
;欲使中文段落粗体,即在中文段落前后插入“**”则输入**S1**
解释
“查找”时使用的表达式中,
()
表示捕获,加上()
可保证在替换时是在选中内容前后插入星号而非将其替换为星号“替换”时使用的表达式中,
S1
表示查找中所选中的内容[a-zA-Z]
表示所有英文字母区间,[\x{4e00}-\x{9fa5}]
表示所有汉字区间^
表示匹配字符串的开始位置。也就是说,匹配的模式必须从字符串的第一个字符开始。.
表示匹配任何单个字符(除了换行符),而*
表示匹配前面的模式零次或多次。因此,.*
表示匹配任何数量的任何字符(包括零个字符)。将这些部分组合起来,正则表达式
^[a-zA-Z].*
的含义是:匹配任何以英文字母开头,后面跟着任何数量的任何字符的字符串。例如,它将匹配 “Apple”、”banana”、”C123” 等,但不会匹配 “123” 或 “!”,因为这些字符串不以英文字母开头。
评论