求教正则表达式高手,怎样匹配一个字符串里有指定的字符? 20

如:我想匹配所有<p>sfsdfdsf123456kjljlkjk</p>,标签里除了其它字符外必须有123456... 如:我想匹配所有<p>sfsdfdsf123456kjljlkjk</p>,标签里除了其它字符外必须有123456 展开
 我来答
己闻楣Sx
2011-11-17 · TA获得超过1936个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:914万
展开全部
朴素写法:<p>.*?123456.*?</p>
高级写法,用断言(或称侦测):<p>(?=.*?123456).*?</p>
之所以称为高级,是它的扩展性好,例如在要求既有123456又有654321,二者顺序不明的情况下,可以:<p>(?=.*?123456)(?=.*?654321).*?</p>
追问
如果没有换行的情况下就能匹配得到,但如果P标签里有换行的话,就匹配不到,应该怎么改呢?
追答
把.改成[\s\S],完整如下:
(?=[\s\S]*?123456)[\s\S]*?

或者再用一种断言,可不用*?而用*,据说性能更好,如下:
(?=(?:(?!123456|
)[\s\S])*123456)(?:(?!
)[\s\S])*
计名pS
2011-11-17 · TA获得超过3649个赞
知道大有可为答主
回答量:4189
采纳率:0%
帮助的人:2201万
展开全部
/<p>[^<]*?123456[^<]*<\/p>/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ebcd94805
2011-11-17 · TA获得超过667个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:486万
展开全部
<p>.*?123456.*?</p>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式