正则表达式
基本概念
- 正则表达式:Regular Expression
- 用途:处理字符串时,查找符合特定复杂规则的字符串。
- 内涵:expression, 就像数学公式一样,表达式意思是表达出“文本的形式”。
- 本质:表示“字符串复杂规则”的工具。记录文本规则的代码。
> 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。 字符串是0个或更多个字符的序列。 文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。
- 表达逻辑组件
- 控制组件:metacharacter(元字符),这个是正则表达式最核心的内容。正则表达式语法 <=> 元字符语义设计。内涵是:控制形式
- 文本组件:需要匹配或者查找的文本本身。
控制组件
- \b
- 含义:匹配单词的开始或结束。但不是表示单词的“分割字符”本身。
- 过程:
假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
- .
- *
- {int n}