问题一:正则表达式出现的原因?
答:正则表达式早期是用在人类神经系统早期研究,用一种数学方式来描述神经网络,然后就是Unix的发明人用它来设计计算搜索算法。慢慢就在文本的编译器和搜索工具中出现了。所以我认为正则表达式的本质就是一种算法。
问题二:正则表达式的目的或它究竟干什么的?
答:这里先从百度百科官方给一下描述,
1.给定的字符串是否符合正则表达式的过滤逻辑(成为“匹配”)
2.可以通过正则表达式,从字符串中获取我们想要的特定的部分。
我个人觉得是对字符串的操作抽象出一些可以表达的规则。我们可以根据这些规则去做第一个就是验证,例如我们可以验证一段字符串是否时有2个数字和3哥字符组成。第二点就是匹配,例如我们有一段字符串,我们可以从这段字符串中匹配出一小部分字符串。然后可以根据这一小部分字符串,我们可以删除,替换等操作。
问题三:能简单介绍一下正则表达式规则是什么样的么?
答:0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串:\d在正则表达式中代表是数字,上面写的意思就是,以0开头后面跟2个数字-8个数字。例如012-12345678.以上可以简单写.0\d{2}-\d{8}
问题四:对于不同的开发人员,我们一般如何去使用它?
答:首先你点在官网上了解一下你所用的开发语言是否支持正则表达式,是原生支持,还是需要第三方标准库。一般标准库会提供很多函数,函数一般都会提供两个参数,参数一一般为规则,就是0\d\d之类了,第二个参数就是需要操作的字符串。
问题五:我们应该如何去编写正则?
答:正则的规则需要由两部分组成,特殊字符和一般字符,例如上面的0\d\d中,0就是一般字符,而\d就是特殊的字符。具体各种特殊字符代表什么含义可以在编写的时候在从网上找一些。
问题六:正则是如何实现的?
答:这个问题我只是自己的理解,我的理解就是按照各种定义好的规则,进而去实现各种函数,函数的实现就是各种操作字符串的算法。返回把各种函数整合起来,提供出一个标准库。目前来说我认为是这样实现的。至于算法问题,不在这里做更多的讨论。
网友评论