牛客正则题

来源:互联网 发布:类似卓讯云客宝软件 编辑:程序博客网 时间:2024/05/30 23:41
Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。正则表达式为()
  • ".*?(?=\\()"
  • ".*?(?=\()"
  • ".*(?=\\()"
  • ".*(?=\()"

1.什么是正则表达式的贪婪与非贪婪匹配

如:String str="abcaxc";

Patter p="ab*c";

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

2.编程中如何区分两种模式

默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

量词:{m,n}:m到n个

*:任意多个

+:一个到多个

?:0或一个
'.' 是一个元字符,匹配 除了换行符以外的任意字符.
'*' 同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定* 前边
的内容可以连续重复使用任意次以使整个表达式得到匹配.' .*' 连在一起就意味着 任意数量的不包含换行的字符.
(?=exp) 也叫 零宽度正预测先行断言 ,它 断言自身出现的位置的后面能匹配表达式exp 。比如\b\w+(?=ing\b) ,
匹配 以ing结尾的单词的前面部分(除了ing以外的部分) ,如查找 I'm singing while you're dancing. 时,它会
匹配 sing 和 danc 。
然后这道题目
.表示除\n之外的任意字符
*表示匹配0-无穷 
+表示匹配1-无穷
(?=Expression) 顺序环视,(?=\\()就是匹配正括号
懒惰模式正则: 
src=".*? (?=\\()) " *? 在正则中代表非贪婪匹配模式,会尽量少的匹配字符,
如果不加 ?就是贪婪模式,此时通配符会把所有字符都匹配掉,后面的就无效了
结果:北京市
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 门牙崩了一小块怎么办 遇到很难过的事情怎么办 小孩子上课精力不集中怎么办 每天工作都很累压力大怎么办 重体力活搬不动怎么办 大学没参加体测怎么办 英文写的很丑怎么办 患有勃起障碍应该怎么办较好 运动过度小腿肌肉酸痛怎么办 高考有纹身是字怎么办 新生儿测听力没过关怎么办 色弱高考体检时没查出来怎么办 公司福利体检查二对半怎么办 高考体检表复印件丢了怎么办 高考体检表身高填错了怎么办 大学档案高考体检表丢了怎么办 工厂组织体检我有乙肝怎么办 我有乙肝单位组织体检怎么办? 矮腰袜子老掉怎么办 短腰袜子老下滑怎么办 中考体检结果丢了怎么办 咳嗽左胸围一处刺痛怎么办? 阴茎小父母催婚怎么办 头发扎进指甲缝怎么办 指甲缝扎流血了怎么办 中考考差了高中怎么办 骨折后我抽烟了怎么办 五年级科学考不好怎么办 考试连续考差了怎么办 客户说没考虑好怎么办 小孩生殖器痒经常用手抓怎么办 孩子在幼儿园生殖器官受伤怎么办? 被骗了3000块钱怎么办 小说 月经来了想体检怎么办 尿检的时候遇上月经期怎么办 消防兵改革那新兵怎么办 教师资格证体检有问题怎么办 检兵合格还在上学怎么办 运动后肌肉肿了怎么办 打架用力过猛肌肉疼痛怎么办 军检只要一项不合格怎么办