正则篇(二):如何写一个正则表达式
之前我们讲过了正则表达式的概念和基本用法,详情可参见这篇文档:正则篇(一):认识正则表达式。
那具体应该怎么写出这样的正则呢?其实就三步:
1. 分析归类
2. 正则匹配
3. 测试匹配
分析归类指的是:分析一下你将要匹配的内容,然后将这些字符进行归类,比如你可把他们归类为数字、英文字母、汉字、一个字符等等。
正则匹配很容易理解,归类结束之后写出每一类的表达式,把这些拼起来就是一个完整表达啦。
测试匹配就更容易理解啦~写出来的表达式对不对呢?一定要测试一下。当然,测试的网站随便找一个可以匹配正则的都可以啦~
(在本文中,我用的是memoq的正则表达式小助手。)
实际演示
我们可以用几个日期的表达来实际演示一下。
⚠️下列提供的案例,我们假设原文中的每个格子代表一个字符,不同底色代表一类。
25.06.2018
分析归类:
正则匹配:
当然,你也可以把
\d
换成[0-9]
,是一样的。
测试匹配
再来一个:
25. 06. 2018
分析归类:
正则匹配:
同样,你也可以把
\d
换成[0-9]
。
测试匹配
那,如果是原文是以下内容,又该如何匹配呢?
25.06.2018 25. 6.2018 2. 6. 2018 25.6. 2018 25.6. 18
我们还是按照三步走~
分析归类
正则匹配
同样,你也可以把
\d
换成[0-9]
。
测试匹配
那么,在上一篇文章的结尾,曾经出了一道题,让大家练习匹配以下日期,同时也给出了几种匹配方式。
日期 | 匹配规则 |
2018-06-25 | \d+-\d+-\d+ |
06/25/2018 | \d+/\d+/\d+ |
2018年06月25日 | \d+年\d+月\d+日 |
2018年06月25日 | \d+年\d+月\d+日 |
我们也可以按照三步骤试试看,就拿第一个举例子好了,剩下的交给大家~
2018-06-25
分析归类
4个数字
+-
+2个数字
+-
+2个数字
或者可以可以理解为:
多个数字
+-
+多个数字
+-
+多个数字
正则匹配
\d{4}
-
\d{2}
-
\d{2}
如果是第二种理解,那就是
\d+
-
\d+
-
\d+
测试正则
怎么样,是不是很简单~
总结
再次回顾一下写正则的三个步骤:
分析归类
正则匹配
测试匹配
好啦这期正则篇先到这里,下期分享“正则在翻译工具中如何使用”。
你还想了解什么,欢迎来问呀~