我有一种情况,我只需要在满足以下条件时改变HTML字符串:
现在的问题是,这必须是一个大字符串中的全局正则表达式搜索,它可以在一个字符串中找到多个解决方案。
例如:
<a href="http://www.google.be">Google</a>
<a href="javascript:node(133)">Go there</a>
应该被忽略
<a href="testpage.html">Test</a>
<a href="testpage2.htm">Test page 2</a>
也应该被忽略,但是
<a href="file.mp3">File</a>
<a href="stuff.flv">Stuff</a>
应该抓住。
我知道用HTML制作正则表达式正在将你的灵魂卖给魔鬼,但我已经在这个解析器中太高级了,并且我将花费太长时间完全抛弃它。
因此有一种方法可以在开始和结束时检查字符串,而不知道字符串本身是在开始还是在结尾(因此使用^或$几乎是不可能的)。 / p>
答案 0 :(得分:1)
答案 1 :(得分:1)
这是一个可以帮助你的正则表达式。
<a href="(?!http:\/\/)(?!javascript:)[\w\s,/-]+(?!.html?)\.\w+">.+?<\/a>
我使用负面预测来强制执行你的规则。
(?!http:\/\/)
确保链接不以http://
开头。 (?!javascript:)
与javascript规则类似。
然后,它控制路径的结束,如果以htm或html结束,则负向前瞻将确保字符串不匹配。
您可能希望完成[\w\s,/-]
部分,该部分与文件的路径和名称相匹配。我允许使用字母数字字符-
,,
,/
和_
,随意添加您需要的内容。