Regular Expression notepad++ 文本提取及清洗数据,网址、邮箱、电话等等一切目标文本,外贸客户开发,客户列表库清洗,外贸实战笔记。
Regular Expression 正则表达式RegEx
你手头所有的外贸客户信息攫取软件,邮箱、电话、网址都是用正则表达式做的,所以也建议使用notepad++,进一步领会RegEx.
notepad++
相关正则
Website正则
- 首先,用正则表达式判断网址,是一件非常复杂且不确定的事情,漏判误判错判是极其可能的,尤其对于外贸业务潜在客户网址库而言,涉及面广,情况复杂,专业性强,简单的正则表达式更加难以做到十全十美。
- 即使是邮箱的正则,也难以做到完美,你可以简单粗暴地理解,此文提到的邮箱正则,就是市面上所有邮箱提取工具的方式方法,无出其右。
Excel数据库
前面已经说了,对于外贸业务客户网址列表而言,这种数据是极其庞杂且专业的。先准备一份2万7112个网址,带www., http, https或者直接是域名,当然也有各种三级三级界面的后缀。
- 在实际工作中会发现,绝大多数网址,直接在搜索引擎输入域名,比如example.com即可
- 有的得加上www.,即www.example.com
- 还有得https://www.example.com
- 再有,得是http://www.example.com
Excel网址清洗相关文章 Clean Customer Website List客户网址清洗,外贸实战笔记
请注意,这里说的是打开的情况,有一种情况是,域名带有http、https,去掉之后网站打不开。这其中的逻辑作者讲不深入,就不班门弄斧了,自行Google。但,事实正如前文所述,日常工作中这种情况并不少见,可留意观察。因此,你的数据源是怎样的就保持怎样,你采集来的数据源就是目标群体想向他的市场表达的数据样式。
再粗暴一点理解,有的就留着,没有的不要乱加。
http和https是网络协议的名称,www是域名前缀。
- http:是Hypertext Transfer Protocol (超文本传输协议)的缩写,是一种用于传输数据的应用层协议,用于在Web浏览器和Web服务器之间传递信息。
- https:是以SSL (Secure Sockets Layer 安全套接层) 协议为基础的加密传输协议,保护用户数据的安全。
- www:是World Wide Web(万维网)的缩写,是Internet上提供全球信息访问的一种网络服务。
因此,网址带有http和https的,是协议的不同,表示数据传输的安全性和可靠性不同。而网址带有www的,则代表这是一个万维网网站。
仅用域名处理
27192条数据,如果只用域名来处理,舍弃http、https、www.,可看到重复10423条,相当于38%的域名重复,留存总数据61%。
当然也有这么一种声音,都什么时代了,还要带个http、https、www.,不带还打不开,打不开我还就不要你了,自己改去吧。
不带https、http和www.一级域名正则【仅且只能为域名本身】
^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$
在和Excel清洗中,去除http和https,以及www.相对应,无误,可用。
一级域名正则解释
^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$
这个正则表达式匹配的是符合标准的网站一级域名,其中:
一级域名由字母、数字和“-”组成;
一级域名长度在 1~63 之间;
一级域名后面是一个点和国家/地区的标识符,如.com、.cn、.hk 等。这个标识符由两个或三个字母组成;
例如:
baidu.com
google.cn
apple.co.jp
subdomain.example.co.uk
my-domain123.net
符合上述规则的网站一级域名。
但是,它不匹配 IP 地址或本地主机名等其他类型的主机名。
带https、http、www.及各级链接正则【仅且含域名本身也可】
(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[^\s]*)?
- `(https?:\/\/)?`: 可选的http或https协议
- `(www\.)?`: 可选的www子域名
- `([a-zA-Z0-9-]+\.)+`: 一个或多个非空字符、数字或破折号,加上一个点,至少匹配一个
- `[a-zA-Z]{2,}`: 两个或以上字母的顶级域名,例如com、org
- `(\/[^\s]*)?`: 可选的路径,只要是斜杠后面跟着零个或多个非空白字符。
这个正则表达式会匹配以下网址:
- http://www.example.com/
- https://example.com/
- http://example.co.uk/about/
- https://www.example.net/products
- http://www.example.info
但它不会匹配子域名,例如:
- blog.example.com
- www2.example.net
如果需要匹配子域名,可以将 `(www\.)?` 修改为 `([\w-]+\.)*`。
邮箱正则
[a-z0-9._%+-]*@[a-z0-9.-]*\.[a-z]{2,4}
这是一个简单的邮箱地址的正则表达式模式,它包含以下部分:
[a-z0-9._%+-]* 表示匹配用户名部分,可以由小写字母、数字、点号、下划线、百分号、加号和破折号组成,长度可以为零或更多个字符。
@ 表示匹配@符号。
[a-z0-9.-]* 表示匹配域名部分,可以由小写字母、数字、点号和破折号组成,长度可以为零或更多个字符。
\. 表示匹配一个点号。
[a-z]{2,4} 表示匹配顶级域名,由小写字母组成,长度为2到4个字符。
综上所述,该正则表达式模式可以匹配一些简单的邮箱地址,但是并不能匹配所有的邮箱地址,因为实际上的邮箱地址有很多变化和特殊情况,例如国际化邮箱地址(IDN)等。但在实际外贸客户邮箱整理中,已经足够使用,能够完全应对。
电话正则
具体国家具体分析。
中国举例
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
^ 表示开始匹配
$ 表示结束匹配
() 表示分组
| 表示或
\d 表示数字
这个正则表达式可以匹配以下开头的手机号码:
- 13
- 14(除了143和149)
- 15(除了154)
- 16(除了165和169)
- 17(除了174、175、176)
- 18
- 19(除了194)
后面必须跟着8个数字。因此,这个正则表达式可以用来验证中国大陆地区的手机号码。
美国举例
[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}
这是一个基本的美国电话号码正则表达式模式,可以匹配常见的电话号码格式,包括以下形式:
1234567890
123-456-7890
123.456.7890
123 456 7890
(123) 456-7890
1-123-456-7890
该正则表达式模式包含以下部分:
[01]?[- .]? 表示匹配可选的一个前缀0或1,可选的一个分隔符-、空格或点号。
(\([2-9]\d{2}\)|[2-9]\d{2}) 表示匹配区号,可以是括号包含的3位数字,或者3位数字。
[- .]? 表示匹配可选的一个分隔符-、空格或点号。
\d{3} 表示匹配3位数字的前缀,即号码的前三位。
[- .]? 表示匹配可选的一个分隔符-、空格或点号。
\d{4} 表示匹配4位数字的后缀,即号码的后四位。
综上所述,该正则表达式模式可以匹配常见的美国电话号码格式,但是也有一些未能覆盖到的情况,如国际电话号码等。
搜索实战-邮箱举例
提http、https、www.网址带各级后缀【域名本身也可】
正则如下,notepad++可测,此文表格放心使用。
(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[^\s]*)?
文本输入: