正则表达式的知识普及

1.什么事正则表达

正则表达式是可以匹配文本片段的模式。例如'python'可以用来匹配字符串'python'。你可以用这种匹配行为搜索文本中的模式,并且用计算后的值替换特定模式,或者将文本进行分段。


  • 通配符
正则表达式可以匹配任意一个的字符串。符号为(.),可以匹配除了换行之外的任意字符。例如正则表达式‘.ython',可以匹配’python',或者'jython',或者' ython'等,但不能匹配'cpython'或者'ython'这两个,因为(.)表示一个字符串,而不是没有或者多于一个。
  • 对特殊字符进行转义
但,当真的需要匹配(.)这个符号时,需要用到转义字符\。例如正则表达式'python\.org'匹配'python.org'。而如果是'python.org',则还可以匹配'pythonaorg'或者'pythonworg'等,不符合我们的想法。
  • 字符集
可以使用中括号来创建字符集,表示中括号内的任意字符。例如正则表达式'[pj]ython'匹配'python'和'jython',其他内容就不能再匹配了。而[a-z]表示字符集a到z中的任意一个字符,可以选用反转字符[^a-c]表示除了a,b,c外的任意一个字符。
  • 选择符和子模式
如果我们只想从几个里面选择其中一个的话,可以使用管道符号(|),例如正则表达式'python|perl',就只可以从'python'或者'perl’两个匹配中选择一个。可以对那个表达式进行简化,得到'p(ython|erl)'。这就是子模式。
  • 可选项和重复子模式

在子模式后面加上问号,就变成可选项。它可能会出现在匹配字符串中,但并非必须的。例如,下面这个正则表达式:‘(http://)?(www\.)?python\.org',这里会匹配'http://www.python.org'或者'http://python.org'或者'www.python.org'或者'python.org'这四种情况。

问号表示子模式可以不出现或者出现一次。其他情况就如下

(pattern)*:表示pattern可以出现0次,1,次,2次等等

(pattern)+:表示pattern至少出现1次

(pattern){m,n}:表示pattern至少出现m次,至多出现n次

  • 字符串的开始和结尾
目前为止,所出现的模式匹配都是针对整个字符串,但也可以对表达式的字符串确定其开始位置还是结尾位置。(^)标记开始,美元符号($)表示结尾。如(^ht+p)就是表示h开头的字符串,而(ht+p$)表示p结尾的字符串。

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) <script ...