javascript - 改进 Regex 以匹配 css 文件中的字体文件

标签 javascript php regex fonts pattern-matching

我正在尝试匹配 CSS 文件中包含的字体文件。 字体文件可以有以下扩展名: 和以下格式:

- url("../../../../fonts/font_awesome/fontawesome-webfont.ttf?v=4.6.3")
- url("../../../../fonts/font_awesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular")

在这种情况下,匹配应该是:

../../../../fonts/font_awesome/fontawesome-webfont.ttf?v=4.6.3
../../../../fonts/font_awesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular

我已经制作了一个成功匹配它们的正则表达式,但是在使用在线服务时,正则表达式返回给我一个警告,说它有一个灾难性的回溯,所以我想问这个正则表达式如何才能更好:

url\s*\(\s*\S(.+?\.(woff|eot|woff2|ttf|svg)\s*)\??\S+?\s?\)

带有回溯警告的正则表达式:https://regex101.com/r/KWsh1X/1

最佳答案

这将完成工作:

url\("([^\)]+?\.(woff|eot|woff2|ttf|svg)[^"]*)"

在这里你可以玩:https://regex101.com/r/KWsh1X/2

关于javascript - 改进 Regex 以匹配 css 文件中的字体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068846/

相关文章:

javascript - Codeigniter 中的验证电子邮件表单

regex - Emacs regexp和Perl兼容正则表达式(PCRE)的比较表?

java - 函数式 java.util.regex 匹配/组提取

python - 如何删除文件中两个重复 block 之一?

javascript - IE 不喜欢 API 中的 toLocaleDateString()

javascript - 如何创建高效的 map 系统?

php - CakePHP 将数据传递给元素

javascript - 在 jquery 和 javascript 中创建自定义日历背后的逻辑

javascript - jquery 选择值属性并应用每个值

PHP 循环无法创建动态 HTML 表