记录下两个正则表达式的使用
作者:Ghost 来源:css森林 发布时间:2009-11-30 12:56:00
昨天在做mergeCSS的时候遇到两个正则匹配的问题,也花了不少的时间,最后在CSS森林群的 CE 同学帮助下,才完成了这俩正则,特别记录下,以后可能也会用到。
第一个是匹配图片路径的问题,要处理的字符串是:
background:url(demo.jpg);background-image:url(demo.gif);
我一开始写的是:
url\((.*)\)得到的结果为:
url(demo.jpg);background-image:url(demo.gif);
可以看到,把两个图片匹配成了一个,结果不是所希望得到的。把它改为惰性匹配,如下:
url\((.*?)\)
得到的结果为:
url(demo.jpg);
url(demo.gif);
匹配到了两个图片,是所要的结果了。:)
第二个问题是正则表达式中使用变量的问题,简单解释下为什么加变量也会成为问题,先看下 RegExp 对象 和 replace() 方法 的说明,Javascript的正则一般的书写方式是:
/正则表达式/匹配模式所有在“/”中间的内容都会被当成正则表达式,于是变量名也就被当成字符串了。不加“/”?也行,不过不加“/”的话就不能指定匹配模式,也就只能匹配到第一个。
通过RegExp对象可以生成一个新的 RegExp 对象,具有指定的模式和标志。
于是:
new RegExp("url\\((" + 变量名 + ")\\)", "g");
这里要注意的是使用“\\”的方式的方式进行转义,因为
如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
这个过程中“\\”会被转换成“\”,即上面的结果是:
/url\((变量内容)\)/g
猜你喜欢
- 先废话几句,这第23篇教程一直没有翻译出来,直到今天我看到待审评论里面有这么一条超长的评论,结果一看,居然是这篇教程的翻译稿。
- 配置文件如下,下面对配置文件进行一一解释"""Django settings for film1_manage
- python标准库OS模块简介os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作
- 终于皇天不负有心人,答案还是让我找到了。 网上的都是这样用的 $content = iconv("utf-8",&quo
- 选择了MySQL的安装版本后,要做的第二项决策是你是使用源码分发版还是二进制分发版。大多数情况,如果你的平台上已经有了一个二进制分发版,你可
- 我们可以利用Session对象来进行注册验证。Session对象会帮我们把某一用户的信息保留下来,让后续的网页读取。我们就可以在用户注册成功
- 前言:因为研究工作的需要,要更改激活函数以适应自己的网络模型,但是单纯的函数替换会训练导致不能收敛。这里还有些不清楚为什么,希望有人可以给出
- 前言:今天要介绍这个神器,可以说是 pywebio 的 Plus + Pro&nbs
- import random, stringclass C(object): passdef danger
- Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功
- 1.首先分析要做的项目的结构,整理出关系图2.运行 python manage.py startapp XXX 创建一个app3.根据关系图
- 详解微信小程序中的页面代码中的模板的封装 最近在进行微信小程序中的页面开发,其实在c++或者说是js中都
- 自己做了一个asp页面,用了一个td来显示留言本的最新消息;但是却无法控制其排版问题,因为该td的width确定,但是数据库中的文字却是未知
- 今天小编给大家推荐一个超强交互式可视化绘制工具-python-highcharts,熟悉HightCharts绘图软件的小伙伴对这个不会陌生
- python字典怎么排序?定义一个字典类型mydict = {2: '小路', 3: '黎明', 1:
- 用yum更新PHP,只需用一条命令就可以搞定: #yum update php 但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而
- 在有些场景下,我们需要对我们的varchar类型的字段做修改,而修改的结果为两个字段的拼接或者一个字段+字符串的拼接。如下所示,我们希望将x
- 前言全可以访问相同的对象, 因此我们讲 这种变量名也叫对象的 "引用".验证1:a = 2b = 3print(id(a
- 1. floor 函数1.1 floor 函数的作用floor() 函数的作用是返回小于等于该值的最大整数举例说明:select floor
- 首先数据库里需要有一个自动编号字段(ID)。然后第一次访问的时候,取出所有记录,定制好每页的记录数PageSize,计算出页数,然后根据页数