正则表达式可以用简单的办法实现一些强大的功能。而现在的java、php、javscript等都支持使用正则表达式。但是由于正则表达式的功能的强大,导致了正则表达式的代码难度比较大,学习正则表达式也不这么容易。但是可能有些朋友对正则表达式还不是很理解。本文会对正则表达式进行一个初步的了解。
正则表达式
正则表达式是计算机科学中的一个重要概念。在你编写处理字符串的程序或者网页的时候,你可能经常会有查找符合某些复杂规则的字符串的需要。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器中,正则表达式通常被用来检索、替换符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。
虽然上文中说了那些,但是对于没有使用过正则表示式的朋友,可能是不熟悉的。下面用通配符打个比方:
你可以使用“?”和“*” 通配符进行查找硬盘上的文件。“?”可匹配文件名中单个字符,而“*”可以匹配0个以及多个字符。如下图:
通配符的工作原理和正则表达式的概念相似,但是正则表达式的功能更加的强大以及更加的灵活。
图中是一些简单的正则表达式
正则表达式的历史
正则表达式可以一直追溯到人类神经系统工作的研究。20世纪40年代,Warren McCulloch与Walter Pitts将神经系统中的神经元描述成小而简单的自动控制元。
在20世纪50年代,一位叫Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,用称之为正则集合的数学符号来描述此模型。
后来,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期研究,肯·汤普逊将此符号系统引入编辑器QED,然后是UNIX上的编辑器ed,并最终引入grep。自此,正则表达式被广泛地使用于各种UNIX或者类似UNIX的工具,例如Perl。
上文中我们说了对正则表达式以及它的历史做了简单的了解。那正则表达式真正有用在哪里,我们为什么要使用正则表达式?
说正则表达式之前我们说一下典型的搜索,典型的搜索和替换操作要求你提供与预期的搜索结果匹配的确切文本。这个技术缺乏灵活性,但是对于静态文本执行简单搜索和替换的任务却是足够了。而如果使用这种方法去搜索动态文本,会变得比较困难。
图中是正则表达式的应用
而我们通过正则表达式,可以:
1)测试字符串中的模式。例如:数据验证,也就是可以测试输入字符串,查看字符串中是否出现电话号码模式或信用卡号码模式。
2)替换文本。和我们上面说的通用符一样,可以使用正则表达式来识别查找文档中的特定文本,你可以用其他文本进行代替或者完成删除该文本。
3)基于模式匹配从字符串中提取字符串。简单来说就是你可以在文档或者输入域中查找特定的文本。
下面举一个例子:
你可以使用正则表达式用于整个网站进行搜索,并且要对一些已经过时的文件进行删除或者替换的时候。正则表达式可以确定每个文件中是否出现了该材料或在该HTML格式标识。这个过程会将受影响的文件列表先进行缩小,然后放到包含需要删除或更改的材料的文件中。然后再使用正则表达式对过时的文件进行删除。
应用范围
现在正则表达式已经被很多的软件已经变成语言所应用,例如:java、C#、PHP等编程语言的开发环境中,Linux、HP等操作系统中。
总的来说,正则表达式是一个非常强大的功能。当你使用过内建正则表达式支持的语言,你就会知道正则表达式的强大之处。但是对于不认识正则表达式的朋友来说,它就是一个用于匹配字符的模式。所以学习Java或者PHP的朋友对于正则表达式也要有一定的了解和运用。如果想要学习语言的朋友可以直接点击文中的链接进行学习。
¥299.00
¥498.00
¥399.00
¥29.00