正则表达式学习
正则表达式:使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在文本编辑中,它可以用来检索、替换某个匹配的文本。 1) 空集:φ指示集合φ。 2) 空串:ε指示集合{ε} 3) 文字字符:在∑中的a指示集合{a} 相关运算如下: 1) 串接:RS指示集合。如:{“ab”,“c”}{“d”,”ef”}= {“abd”,“abef”,“cd”,“cef”}。 2) 选择:R|S指示R和S的并集。如:{“ab”,“c”}|{“d”,”ef”}= {“ab”,“ef”,“c”,“d”}。 3) 星号*:R*指示包含ε并且闭合在字符串串接下的R的最小超集。可以通过R中的零或多个字符串的串接得到所有字符串的集合。如{“ab”,“c”}* = {ε,“ab”,“abab”,“abc”,“cba”,“cc”,“ababab”,…}。 它们之间存在优先级,*具有最高优先级,接着是串接,然后是并集。从而可以省略括号。如(ab)c可以谢伟abc,而a|(b(c*))可以写成a|bc*。 一个正则表达式通常被称为一个模式,用来描述或者匹配一系列匹配某个句法规则的字符串。其表示式的形式结果基本如下: 1) 选择: |竖直分隔符代表选择。如”gray|grey“可以匹配gray和grey。 2) 数量: 某个字符后的数量限定符用来限制前面这个字符允许出现的个数。 +加号代表前面的字符必须至少出现一次(1次或多次)。 ?问号代表前面的字符最多只可以出现一次。(0次或1次)。 *星号代表前面的字符可以不出现,也可以出现一次或者多次(0次或1次或多次)。 3)匹配: 圆括号可以用来定义操作符的范围和优先度。如”gr(a|e)y”等价于”gray|grey”,”(grand)?father”匹配father和grandfather。一些结构可以自由组合,可能不同的规则,但是结果相同。如”H(ae?|c)ndel”与“H(a|ae|c)ndel是相同的。 正则表达式优先级: 最高:; 高:()、(?: )、(?= )、[] 中:*、+、?、{n}、{n,}、{m,n} 低:^、$、中介字符 最低:| 常用正则表达式表:
正则表达式应用: 数据验证:可以检查输入的字符串,看其是否符合某种格式; 查找子串:可以查找文档内(或一个字符串内)符合指定模式的子串; 替换文本:可以使用正则表达式来识别文档中的特定内容,完全删除该部分内容或者用其他字符串来替换它; 使用工具:Word、Notepad++、EditPlus等文字编辑器中的查找功能都支持正则表达式,用正则表达式可以实现更加多样化的查找。VS、CodeBlock、Eclipse、Intellij Idea等开发工具的IDE的查找替换功能也都支持正则表达式,用它可以修改变量名,调整代码格式,统计代码行数。
参考文献: https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F http://blog.csdn.net/luoweifu/article/details/42759439 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |