正则表达式的功能很强大,但是他的语法往往难以学会和掌握,即使学会了也容易忘记,即掌握的不深刻。下面我就试图通过简单的讲解让大家迅速深刻的掌握正则表达式。本文以javascript中的正则表达式语法为范例讲解。
创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都网站建设、成都做网站质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式成都营销网站建设需求,让再小的成都品牌网站建设也能产生价值!
一、从最简单的表达式开始
所谓最简单就是没有任何算符,表达式就是目标字符串。
示例文本:The company denied using a "hunger sales" strategy and said the products will be delivered starting April 8.
匹配company:/company/
匹配products:/products/
二、方括号[]的使用
含义:方括号中整体代表一个字符,所代表的字符就是方括号中所列出的字符中的其中一个。
示例文本:A teacher began his class by holding up a glass with some water in it.
同时匹配class和glass:/[cg]lass/g
注:表达式末尾的g代表全局匹配,既global
三、连接符-的使用
含义:连接符表示范围,连接符左右两端的字符为范围的第一个和最后一个字符。
示例文本:Activity set to honor PLA Navy birthday.
匹配所有的大写字母:
1:/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/g
2:/[A-Z]/g
四、脱字符^的使用
含义:脱字符放在方括号内的第一个位置,表示不匹配方括号中列出的字符。
示例文本:Activity set to honor PLA Navy birthday.
与任何不是字符A的字符匹配:/[^A]/g
与任何不是大写字母的字符匹配:/[^A-Z]/g
五、问号?的使用
含义:问号前面的字符有或无。
示例文本:color is equal to colour.
同时匹配color和colour:/colou?r/g
*六、星号的使用**
含义:星号前面的字符不出现或出现若干次。
示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!
匹配ba! baaa! b! baaaaaaa!等的表达式:/ba*!/g
匹配ba! baaa! baabaabb! baaaaaaa! abbbaabbab!的表达式:/[ab]*!/g
七、加号+的使用
含义:加号前面的字符出现一次或若干次,即至少出现一次。
示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!
将 /ba*!/g 改为 /ba+!/g 的匹配结果是:ba! baaa! baaaaaaa!
八、点号 . 的使用
点号是通配符,表示与任何单个字符(回车符除外)相匹配。
经常与星号结合使用,.*可以表示任意字符串。
示例文本:The company denied using a "hunger sales" strategy and said the products will be delivered starting April 8.
匹配using到products的字符串:/using.*products/g
九、常用锚号的使用
含义:锚号是让表达式匹配文本的特定位置的符号。
示例文本:The apple is Green.the other one is also green
脱字符(^),表示匹配行首
例如匹配行首的The:/^the/ig
注:表达式后面的i字母表示忽略大小写。
美元符($),表示匹配行尾
例如匹配行尾的green:/green$/ig
词界(\b)
例如要匹配单词the,而不是other中包含的‘the’: /\bthe\b/ig
十、析取算符|与括号()的使用
含义:析取算符表示或关系;括号中是子正则表达式。
示例文本:A cat is talking with a dog,guppies are the complex form of guppy.
匹配cat、dog和guppy的表达式:/cat|dog|guppy/g
匹配guppy与guppies的表达式:/gupp(y|ies)/g
十一、计数符的使用
含义:计算符来规定它前面的字符或子表式出现的次数。
示例文本:ba!baaa!baabaabb!baaaaaaa!abbbaabbab!
星号*:表示前面的字符或子表达式出现零个或多个 /ba*!/g
加号+:表示前面的字符或子表达式出现一个或多个 /ba+!/g
问号?: 表示前面的字符或子表达式出现零个或一个(出现或不出现) /ba?!/g
{n}:表示前面的字符或子表达式出现n个
例如a要出现3次:/ba{3}!/g
{n,m}: 表示前面的字符或子表达式出现n到m个
例如a出现的次数要在3到9之间:/ba{3,9}!/g
{n,}: 前面的字符或子表达式至少出现n个 /ba{5,}!/g
例如a至少要出现5次:/ba{5,}!/g
另外可以看博主视频课:秒懂正则表达式
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。