正则表达式的知识普及

前端之家收集整理的这篇文章主要介绍了正则表达式的知识普及前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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结尾的字符串。 原文链接:https://www.f2er.com/regex/363251.html

猜你在找的正则表达式相关文章