我需要从html中删除任何非YouTube托管的电影.最初的要求是删除任何电影,为此
<object.*object>
Run Code Online (Sandbox Code Playgroud)
工作得很好.现在我基本上需要做同样的事情,但前提是对象标签中的东西不是托管在youtube上的.我需要一个正则表达式模式,该模式将匹配以"youtube"开头但不包含单词"youtube"的字符串.如果我需要这个来处理所有可能的场景,我可能需要考虑更多的事情,但上面的内容应该可以解决手头的工作.
我一直在玩负面的前瞻,但还没有能够让它发挥作用.以下是我尝试过的一些事情:
<object.*(?!youtube).*object> - 匹配所有对象标签,因为*是贪婪的
<object.+?(?!youtube).+?object>
<object(?!youtube)*object>
Run Code Online (Sandbox Code Playgroud)
加上很多其他的东西,只是进一步加强了我在黑暗中疯狂地刺伤这一个.
这是在Java 1.6中
尝试:
(?s)<object((?!youtube).)*?object>
Run Code Online (Sandbox Code Playgroud)
(?s) 将导致DOT元字符匹配任何字符(包括换行符)<object并且object>必须清楚(?!youtube).将首先检查是否youtube可以"看到",如果是这种情况,正则表达式将匹配任何字符((?!youtube).)*? 将匹配[3]零次或多次,不情愿地("不贪婪")请注意,使用正则表达式,可能会出现问题.要获得更强大的解决方案,请使用(x)HTML解析器迭代所有对象标记,并检查属性或内部html中是否存在"youtube".
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |