![]() | 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 ![]() (<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 ![]() (<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 ![]() <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 imn 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,一运行就进死循环,界面没有响应,还得费劲杀死进程。为了避免浪费时间,我想安装一个“死循环卫士”,在程序运行前自动检测这个程序,如果发现会进死循环就阻止它运行,并弹出一个对话框提示:死循环卫士检测到该程序会进入死循环,需要继续运行吗? 那么现在问题就来了:“死循环卫士”哪里可以下载到? |