1
yfdyh000 2014-12-04 03:18:11 +08:00
(<script>).+?bbb.+?(</script>)
这样吗。 |
3
yfdyh000 2014-12-04 03:46:33 +08:00
不清楚你想要哪部分。正则表达式 后向引用 分组
http://deerchao.net/tutorials/regex/regex.htm#backreference |
4
Sylv 2014-12-04 03:48:45 +08:00 via iPhone 1
(<script>)[^<]+?bbb[^<]+?(</script>)
|
5
andybest OP @Sylv 谢谢!但是还有个问题,如果内容为:
<script>不可预知的代码aaa不可预知的代码</script> <script>var k='<';不可预知的代码bbb不可预知的代码</script> 这个匹配规则就失效了,我尝试将匹配规则改为: (<script>)[^</script>]+?bbb[^</script>]+?(</script>) 但不生效 ^ 只能排除单一字符码? |
6
andybest OP @yfdyh000 我需要匹配
<script>不可预知的代码bbb不可预知的代码</script> 这部分内容,如果是反向引用内容为: <script>不可预知的代码aaa不可预知的代码</script> <script>不可预知的代码bbb不可预知的代码</script> <script>不可预知的代码ccc不可预知的代码</script> 会失效 |
7
11 2014-12-04 04:21:01 +08:00 1
(<script>)(?!</script>).+?bbb.+?(</script>)
|
8
andybest OP @11 谢谢!但实际应用中标签内容中包含换行:
<script>不可预知的代码aaa不可预知的代码</script> <script>var k='<'; 不可预知的代码bbb不可预知的代码</script> 这样匹配就失效了,我尝试改为 (<script>)(?!</script>)[\s\S]+?bbb.+?(</script>) 用 [\s\S] 替换 . 来包含其中的换行,但不生效,如何破? |
9
Sylv 2014-12-04 04:55:24 +08:00 1
<script>((?!</script>).)+bbb((?!</script>).)+</script>
如果是包含换行的情况,其它语言不清楚,Python 的正则表达中需要加 re.DOTALL 和 re.MULTILINE 的 flags |
11
vivid 2014-12-04 07:15:02 +08:00
s=find('<script>')
e=find('</script>') content[s,e].find('bbb') over |
12
rrfeng 2014-12-04 10:29:19 +08:00
遇到这种问题我都会建议使用 DOM 解析 模块……
|
13
imn1 2014-12-04 10:46:14 +08:00
以你说的感觉很奇芭,1.默认非贪婪?2.圆点默认支持换行?
|
14
sohoer 2014-12-04 11:35:09 +08:00
楼主是用JAVA的吧!
JAVA对正则支持不太好,做嵌套匹配得想点办法 |
15
sohoer 2014-12-04 11:46:01 +08:00
script不考虑嵌套可以试下这个
.*<script>(.*?bbb.*?)</script>.* |
16
abscon 2014-12-04 21:21:44 +08:00
搭车问能回答出楼主这个问题的高手另一个问题:
我写的程序有时候会有bug,一运行就进死循环,界面没有响应,还得费劲杀死进程。为了避免浪费时间,我想安装一个“死循环卫士”,在程序运行前自动检测这个程序,如果发现会进死循环就阻止它运行,并弹出一个对话框提示:死循环卫士检测到该程序会进入死循环,需要继续运行吗? 那么现在问题就来了:“死循环卫士”哪里可以下载到? |