php使用正则表达式提取字符串中尖括号、小括号
一、小括号()、中括号[]、大括号的区别
1>. 小括号()匹配小括号内的字符串,可以是一个,也可以是多个,常跟“|”(或)符号搭配使用,是多选结构的
示例1string name = "way2014"; regex(way|zgw) result结果是可以匹配出way的,因为是多选结构,小括号是匹配字符串的
示例2string text = "123456789"; regex(0-9) result结果是什么都匹配不到的,它只匹配字符串"0-9"而不是匹配数字, [0-9]这个字符组才是匹配0-9的数字
2>.中括号[]匹配字符组内的字符,比如咱们常用的[0-9a-zA-Z.?!]等,在[]内的字符都是字符,不是元字符,比如“0-9”、“a-z”这中间的“-”就是连接符号,表示范围的元字符,如果写成[-!?(]这样的话,就是普通字符
示例1 string text = "1234567890"; regex[0-9] result结果是可以匹配出字符串text内的任意数字了,像上边的【或符号“|”在字符组内就是一个普通字符】
示例2string text = "a|e|s|v"; regex[a|e|s] result结果就是匹配字符a、e、|三个字符,这个跟(a|e|s)有区别的,区别就是(a|e|s)匹配的是a、e、s三个字符的随意一个,三个中的任意一个,这是的|是元字符
3>.大括号{}匹配次数,匹配在它之前表达式匹配出来的元素出现的次数,{n}出现n次、{n,}匹配最少出现n次、{n,m}匹配最少出现n次,最多出现m次
更多的可以参考这篇文章
测试代码
$str="你好<我>(爱)[北京]{天安门}"; echo f1($str); //返回你好 echo f2($str); //返回我 echo f3($str); //返回爱 echo f4($str); //返回北京 echo f5($str); //返回天安门 function f1($str) { $result = array(); preg_match_all("/^(.)(?:<)/i",$str, $result); return $result[1][0]; } function f2($str) { $result = array(); preg_match_all("/(?:<)(.)(?:>)/i",$str, $result); return $result[1][0]; } function f3($str) { $result = array(); preg_match_all("/(?:\()(.)(?:\))/i",$str, $result); return $result[1][0]; } function f4($str) { $result = array(); preg_match_all("/(?:\[)(.)(?:\])/i",$str, $result); return $result[1][0]; } function f5($str) { $result = array(); preg_match_all("/(?:\{)(.)(?:\})/i",$str, $result); return $result[1][0]; }
PS (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2环视(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3都过了验证器的验证,验证器见参考资料。
PS这里再为大家提供2款非常方便的正则表达式工具供大家参考使用
JavaScript正则表达式在线测试工具
正则表达式在线生成工具
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指