推荐一个开发人员常用的“正则”神器!
The following article is from 麦叔编程 Author 小K
来源丨经授权转自 麦叔编程(ID:maishucode)
作者丨小K
有些时候,写正则是一件痛苦的事。
懂的人都懂,虽说正则是每个开发人员必学的技能,但事实上精通正则的开发非常少。
附上IPv6的正则表达式供大家参考学习~
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}{4a7c450bd0aa7d1dfc65ff66fdb7ce72edd315e7e27d53501b8d613304d14c31}[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
大多数开发也只是偶尔会使用正则处理一些文本。
在这给大伙推荐一个「神器」!
「那就是regex101!!」
使用该工具可以立即知道自己写的正则表达式能匹配到什么文本,这样动态的debug能提高我这种正则渣的效率。
功能介绍
例子 匹配「在句子开头的手机号码,或座机」
能适配多种编程语言:
而且能设置匹配的模式:
为了更照顾我这种正则渣,甚至在右侧窗口贴心的解释我写的表达式的含义:
对于正则初学者,在界面的右下侧还有显示参考文档:
简直就是妈妈般贴心!!!
生成编程语言代码
这个功能好像以前并没有,难道是最近上线的?
我很好奇的点进去看了下,几乎支持所有的主流编程语言:
但...我看了生成的Python的正则代码,怎么感觉那么繁琐呢?
我试运行这段代码,发现这段代码更注重的功能是「提示」,
提示你会在文本的什么位置会匹配到什么符合条件的字符:
Match 1 was found at 0-11: 18812345678
而我实际开发中,更注重的是匹配到的文本而不在乎它的位置。
import re
regex = r"^1\d{10}|^\d{4}-\d{8}"
test_str = "18812345678,他还有一个电话号码是18887654321,他爱好的数字是01234567891,他的座机是:0571-52152166"
matches = re.findall(regex, test_str)
print(matches)
不过解读regex101给的Python代码也挺有意思的,不信你试试?
1、2023需求最高的编程语言:Python、JavaScript和Java
点分享
点点赞
点在看