加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式的知识普及

发布时间:2020-12-14 02:28:43 所属栏目:百科 来源:网络整理
导读:1.什么事正则表达 正则表达式是可以匹配文本片段的模式。例如'python'可以用来匹配字符串'python'。你可以用这种匹配行为搜索文本中的模式,并且用计算后的值替换特定模式,或者将文本进行分段。 通配符 正则表达式可以匹配任意一个的字符串。符号为(.),

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结尾的字符串。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读