正则化与通配符便于查询和替换批量处理,使用在word,notepad++等文本编辑器中

我们常常使用查找替换的方式来处理相关数据,可是当你要批量替换只用一些相同字符分文本时,就会显得很笨拙。

比如:

    Line 5974: DI 10.13182/NT96-A15844
    Line 6078: DI 10.1109/ISIC.1996.556231
    Line 6130: DI 10.1049/cp:19960530
    Line 6159: DI 10.1016/0165-0114(95)00015-D
    Line 6283: DI 10.1111/j.1559-3584.1995.tb02576.x
    Line 6380: DI 10.13182/NSE94-A19021

我只要得到:

10.13182/NT96-A15844

10.1109/ISIC.1996.556231

10.1049/cp:19960530

等,

那么应该如何替换呢???

下面我将使用正则化与通配符来进行替换

一键替换so easy

首先了解正则表达式:

  • 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等
  • + :+ 号代表前面的字符必须至少出现一次(1次或多次);runoo+b,可以匹配 runoob、runooob、runoooooob 等
  • * : * 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。runoo*b,可以匹配 runob、runoob、runoooooob 等
  • ?:? 问号代表前面的字符最多只可以出现一次(0次、或1次);colou?r 可以匹配 color 或者 colour,

普通字符:普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

特殊字符:所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 \: runo\*ob 匹配 runo*ob。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。

参考:http://www.runoob.com/regexp/regexp-syntax.html

字符 描述
\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

上面的查询替换如下:

使用notepad++:\S为匹配任意字符

替换为

YES!

Everything is OK!

下面再word里进行实践:

在word里替换选项里选择通配符

word中的任意字符为:

关于word的通配符在查找和替换界面左下角特殊格式中有,可以查看。

接下来就是使用python的scihub.py进行批量下载pdf了。

猜你喜欢

转载自blog.csdn.net/qq_26004387/article/details/83901932