您当前的位置:首页 > 互联网教程

swift 5.7 开始,再也不用背正则表达式语法了

发布时间:2025-05-21 08:27:07    发布人:远客网络

swift 5.7 开始,再也不用背正则表达式语法了

一、swift 5.7 开始,再也不用背正则表达式语法了

在 WWDC 2022中,Swift 5.7引入了字符串匹配的升级功能,其中正则表达式部分得到了重大改进。新版本的 Swift引入了 Regex类型,简化了正则表达式的创建和使用过程。

通过 Regex类型,正则表达式的生成变得更为便捷。创建方式与 NSRegularExpression类似,需要标记特殊符号,并使用 try语句捕获异常。为避免此类情况,Swift提供了通过两个斜杠"/.../"直接生成 Regex的方法,编译器能检查语法错误,Xcode也会进行语法高亮显示。

使用正则表达式可以检测字符串中的名称和数字。输出结果为元组,包含匹配的所有内容以及捕获的子字符串。通过元组命名属性,能够更清晰地识别匹配结果。正则表达式中还可以直接命名捕获的变量,增强可读性。

Swift提供了多种匹配正则表达式的方法,包括正则表达式生成器和正则表达式构建器 DSL。正则表达式生成器通过结构化、可读性高的方式构建所需的正则表达式。使用 RegexBuilder模块,可以构建复杂的正则表达式。常用语法表达式如 OneOrMore等,可实现更灵活的匹配。常用的参数输入类型也得到支持。

正则表达式生成的简化使得其在 Swift中的应用更为广泛和直观。开发者可以更轻松地处理字符串匹配任务,提高代码的可读性和效率。借助这些新功能,Swift正在为开发者提供更强大的字符串处理工具,进一步简化了正则表达式的使用。

二、正则表达式的起源

1、正则表达式的“鼻祖”或许可一直追溯到科学家对人类神经系统工作原理的早期研究。美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创造性地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新。

2、在1956年,一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为正则集合的数学符号来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“正则表达式”这个术语。

3、之后一段时间,人们发现可以将这一工作成果应用于其他方面。Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,Ken Thompson是 Unix的主要发明人,也就是大名鼎鼎的Unix之父。Unix之父将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep。Jeffrey Friedl在其著作《Mastering Regular Expressions(2nd edition)》(中文版译作:精通正则表达式,已出到第三版)中对此作了进一步阐述讲解,如果你希望更多了解正则表达式理论和历史,推荐你看看这本书。

4、自此以后,正则表达式被广泛地应用到各种UNIX或类似于UNIX的工具中,如大家熟知的Perl。Perl的正则表达式源自于Henry Spencer编写的regex,之后已演化成了pcre(Perl兼容正则表达式Perl Compatible Regular Expressions),pcre是一个由Philip Hazel开发的、为很多现代工具所使用的库。正则表达式的第一个实用应用程序即为Unix中的 qed编辑器。

5、然后,正则表达式在各种计算机语言或各种应用领域得到了广大的应用和发展,演变成为计算机技术森林中的一只形神美丽且声音动听的百灵鸟。

6、以上是关于正则表达式的起源和发展的历史描述,如今正则表达式在基于文本的编辑器和搜索工具中依然占据着一个非常重要的地位。

7、在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在WINDOWS的阵营下,正则表达式的思想和应用在大部分 Windows开发者工具包中得到支持和嵌入应用!从正则式在Microsoft Visual Basic 6或 Microsoft VBScript到.NET Framework中的探索和发展,WINDOWS系列产品对正则表达式的支持发展到无与伦比的高度,几乎所有 Microsoft开发者和所有.NET语言都可以使用正则表达式。如果你是一位接触计算机语言的工作者,那么你会在主流操作系统(*nix[Linux, Unix等]、Windows、HP、BeOS等)、主流的开发语言(delphi、Scala、PHP、C#、Java、C++、Objective-c、Swift、VB、Javascript、Ruby以及Python等)、数以亿万计的各种应用软件中,都可以看到正则表达式优美的舞姿。