精华内容
下载资源
问答
  • 将单独的直接字符放进方括号内就可以组合成字符类(characterclass)。一个字符类和它所包含的任何字符都匹配。如 /[abc]/ ,和字母“a”,“b”,“c”中的任何一个字母都匹配。? 否定字符类,匹配的是不包含在方...

    类别:正则 | 浏览() 网友评论:1 3.2. 字符类

    ? 将单独的直接量字符放进方括号内就可以组合成字符类(character

    class)。一个字符类和它所包含的任何字符都匹配。

    如 /[abc]/ ,和字母“a”,“b”,“c”中的任何一个字母都匹配。

    ? 否定字符类,匹配的是不包含在方括号之内的所有字符。

    定义否定字符类,将一个^符号作为左方括号后的第一个字符。

    正则表达式/

    [^abc]/,匹配的是“a”,“b”,“c”之外的所有字符。

    ? 字符类可以使用连字符来表示一个字符范围。

    /[ a-z]/ 匹配拉丁字母集中的任何小写字符,

    /[ a-zA-Z0-9]/ 匹配拉丁字母集中任何字母数字字符。

    表2:正则表达式的字符类

    字符 匹配

    […] 位于括号之内的任意字符

    [^…] 不在括号之中的任意字符

    . 除换行符和其他Unicode行终止符之外的任意字符

    \w 任何ASCII单字字符,等价于[a-zA-Z0-9_ ],包含下划线

    \W 任何ASCII非单字字符,等价于[^a-zA-Z0-9_ ]

    \s 任何Unicode空白符

    \S 任何非Unicode空白符,注意 \w 和 \S不同

    \d 任何ASCII数字,等价于[0-9]

    \D 除了ASCII数字之外的任何字符,等价于[^0-9]

    [\b] 退格直接量(特例)

    注意1:

    在方括号之内也可以使用这些特殊的字符类转义序列。 2 3.3. 重复

    (1)把两位数描述成 /\d\d/ ,把四位数描述成 /\d\d\d\d/

    ,需要有一种方法可以用来描述具有任意多数位的数字。

    (2)想描述一个字符串,这个字符串由三个字母以及跟随在字母之后的一位数字构成。

    这些较复杂的模式使用的正则表达式语法都指定了该正则表达式中的一个元素重复出现的次数。

    指定重复的字符总是出现在它们所作用的模式之后。

    由于某种重复类型相当常用,所以就有一些特殊的字符专门用于表示这种情况。如

    ?, + , *

    表3:正则表达式的重复字符

    字符 含义

    {n,m} 匹配前一项至少n次,但是不能超过m次

    {n,} 匹配前一项n次,或更多次

    {n} 匹配前一项恰好n次

    ? 匹配前一项0次或1次,也即前一项是可选。等价于{0,1}

    + 匹配前一项1次或多次,等价于{1,}

    * 匹配前一项0次或多次,等价于{0,}

    注意:

    使用重复字符 ? 和 *

    时,由于这些字符可能匹配前面字符的0个实例,所以它们允许什么都不匹配。

    如:正则表达式 /a*/ 实际上与字符串

    “bbbb”匹配,因为这个字符串含有0个a.。

    3.3.1. 非贪婪重复

    表3中列出的重复字符可以匹配尽可能多的字符。我们说,这种重复是“贪婪的”。

    可以以非贪婪的方式进行重复,只需要在重复字符后 3 3.4.

    选择、分组和引用

    正则表达式的语法,还包括指定选择项、对子表达式分组和引用前一子表达式的特殊字符。

    3.4.1. 竖线“|”作选择

    字符“|”用于分隔供选择的字符。

    如:

    /ab|cd|ef/

    匹配的是字符串“ab”,或字符串“cd”,或字符串“ef”

    /\d{3}|[a-z]{4}/ 匹配的是三位数字或四个小写字母

    注意:

    选择项从左到右考虑,直到发现了匹配项。

    如果左边的选择项匹配,就忽略右边的匹配项,即使它产生更好的匹配。

    如:

    /a|ab/ 应用到字符串“ab”上时,它只匹配第一字符。

    4 3.4.2. 括号“( )”作分组

    ?

    正则表达式中,括号的作用,把单独的项目组合成子表达式,以便可以像处理一个独立的单元那样用

    | 、* 、+ 、? 等来处理它们。

    如:

    /java(script)?/

    匹配的是字符串“java”,其后既可以有“script”,也可以没有。

    /(ab|cd)+|ef/

    匹配的,既可以是字符串“ef”,也可以字符串“ab”或者“cd”的一次或多次重复。

    ? 括号的另一个作用,在完整的模式中定义子模式。

    当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配的部分。

    如:

    /[a-z]+\d+/ ,一个或多个小写字母后面跟随了一位或多位数字

    假定,我们真正关心的是每个匹配尾部的数字,那么将模式的数字部分放在括号中

    /[a-z]+(\d+)/ ,这样就可以从检索到的任何匹配中抽取数字了。

    3.4.3. 反斜杆带数字“\n”作引用

    带括号的子表达式的另一个用途是,允许我们在同一正则表达式的后面引用前面的子表达式。

    通过在字符“\”后加一位或多位数字实现的。数字指定了带括号的子表达式在正则表达式中的位置。

    如:

    \1 引用的是第一带括号的子表达式,

    \3 引用的是第 5 3.4.4. “(?: )”只组合,只分组,不生成引用

    在JavaScript1.5(不是JavaScript1.2)中,无须创建带编码的引用就可以将正则表达式中的项目进行组合。它不是以

    ( 和 ) 对项目进行分组,而是以 (?: 和 ) 来分组。

    如:

    /([Jj]ava(?:[Ss]cript)?)\sis\s(fun\w*)/

    这里,子表达式 (?:[Ss]cript)

    仅仅用于分组,并不生成引用,因此,现在,对于\2实际上引用的是与(fun\w*)匹配的文本。

    表4:正则表达式的选择、分组和引用字符

    字符 含义

    ...|... 选择。匹配的是该符号左边的子表达式或右边的子表达式

    (...) 组合。将几个项目组合为一个单元,这个单元可由*、 +、 ? 和

    |等符号使用,而且还可以记住和这个组合匹配的字符,以供此后的引用使用

    (?:...)

    只组合。把项目组合到一个单元,但是不记忆与该组匹配的字符

    \n 和第n个分组第一次匹配的字符相匹配。

    组是括号中的子表达式(可能是嵌套的)。

    组号是从左到右计数的左括号数,以 (?: 形式分组的组不编码

    6 3.5. 指定匹配的位置

    表5:正则表达式的锚字符

    ^ 匹配字符串的开头,在多行检索中,匹配一行的开头

    $ 匹配字符串的结尾,在多行检索中,匹配一行的结尾

    \b

    匹配一个词语的边界。简而言之,就是位于字符\w和\W之间的位置,或位于字符\w和字符串的开头或结尾之间的位置(匹配一个字边界,即字与空格间的位置)

    (注意,[\b]匹配的是退格符)

    \B 匹配非词语边界的字符

    (?=p)

    正前向声明,要求接下来的字符都与模式p匹配,但是,匹配结果中,不包括匹配中的那些字符

    (?!p) 反前向声明,要求接下来的字符不与模式p匹配

    例子:

    ? /\bJava\b/

    匹配 Java 、’ Java ’ (前后带空格) 不匹配:JavaScript

    ? /\B[Ss]cript/

    匹配:JavaScript 、 postscript 不匹配:script 、Scripting

    ? /[Jj]ava([Ss]cript)?(?=\:)/

    匹配: JavaScript: The Definitive Guide

    不匹配:Java in a Nutshell

    ? /Java(?!Script)([A-Z]\w*)/

    匹配:JavaBeans、 Javanese 不匹配:JavaScript

    7 3.6. 标志

    表5:正则表达式的标志

    字符

    含义

    i

    执行大小写不敏感的匹配

    g

    执行一个全局匹配。简而言之,即找到所有匹配,而不是在找到第一个之后就停止

    m

    多行模式,

    ^ 匹配一行的开头和字符串的开头

    $ 匹配一行的结尾或字符串的结尾

    4. 用于模式匹配的String方法

    本节讨论String对象的部分方法,它们在正则表达式中执行模式匹配和检索与替换操作。

    类String支持四种利用正则表达式的方法。

    方法

    用途

    search (regexp)

    在字符串中检索与regexp相匹配的子串,并且返回第一匹配子串的第一个字符的位置。

    如果没有找到任何匹配的子串,则返回 -1

    replace(regexp, replacement)

    查找并替换。在字符串中查找与regexp相匹配的子串,然后用replacement替换这些子串。

    如果regexp具有全局性质g,那么将替换所有的匹配子串。否则,只替换第一个匹配子串。

    match(regexp)

    检索字符串,以找到一个或多个与regexp匹配的文本。

    如果没有找到任何匹配的文本,将返回null。

    否则,返回一个数组。(是否具有性质g,返回的数组大不一样,请查看帮助文档)

    split(regexp, limit)

    将字符 8 5. 用于模式匹配的RegExp对象

    JavaScript中,正则表达式是用RegExp对象来表示的。

    除了构造函数RegExp()之外,RegExp对象还支持3种方法和大量的属性。

    5.1. RegExp的构造函数

    new RegExp(pattern, attributes)

    参数

    含义

    pattern

    一个字符串,指定正则表达式的模式或其他正则表达式

    attributes

    一个可选的字符串,包含属性“g”、“i”和“m”,

    如果pattern是正则表达式,而不是字符串,则必须省略该参数。

    l

    第一个参数是包含正则表达式主体的字符串,即正则表达式直接量中出现在斜线对之间的文本。

    l

    因此,将正则表达式作为字符串直接量传递给RegExp()时,必须用\\替换所有\字符

    如:

    //找到字符串中的5个数字。

    var zipcode = new RegExp(“\\d{5}”, ”g”);

    9 5.2. RegExp的实例属性

    属性 含义 返回值

    global RegExp对象是否具有性质g 只读的布尔值

    ignoreCase RegExp对象是否具有性质i 只读的布尔值

    lastIndex

    上次匹配后的字符位置,用于在一个字符串中进行多次匹配

    由方法 exec()和test()使用 可读写的整数

    multiline RegExp对象是否具有m性质 只读的布尔值

    source 正则表达式的源文本 只读的字符串

    5.3. 用于模式匹配的RegExp方法

    方法 用途

    exec(text) 对指定的字符串,执行一个正则表达式,

    也即,在一个字符串中,检索匹配。

    如果没有找到任何匹配的子串,则返回 null;

    如果找到了一个匹配,则返回一个数组;

    test(text) 检测一个字符串是否匹配某个模式

    如果字符串中含有匹配的文本,就返回true ,否则,返回 false

    如:

    var pattern = /java/i;

    pattern.test(“JavaScript”); //返回true

    var pattern = /Java/g;

    var text = “JavaScript is more fun than Java!”;

    var result;

    while ( ( result = pattern.exec(text) ) != null )

    {

    alert(“Matched ‘” + result[0] + “’” + “ at position “ +

    result.index

    + “; next search begins at “ + pattern.lastIndex)

    }

    10 6. 常见正则表达式

    ^[+-]?\d+$ 整数

    ^[0-9]*[1-9][0-9]*$ 正整数 (没有+号)

    ^-[0-9]*[1-9][0-9]*$ 负整数

    ^\d+$ 正整数 + 0(非负整数)

    ^((-\d+)|(0+))$ 负整数 + 0(非正整数)

    ^[a-zA-Z]+$ 由26个英文字母组成的字符串

    ^[a-zA-Z0-9]+$ 由数字和26个英文字母组成的字符串

    ^\w+$ 由数字、26个英文字母或者下划线组成的字符串

    (^\s+)|(\s+$) 首尾空格

    [\u4e00-\u9fa5]

    匹配中文字符(Unicode编码),包括简体、繁体中文

    ^([0-9]){8}([a-zA-Z]){2}$ 前8位数字,后2位字母

    ^[\w.]+@[\w]+(\.[\w]{2,3}){1,2}$ email地址

    (\w+):\/\/([\w.]+)\/(\S*) URL

    展开全文
  • 随着冷藏车在市场上占有的加大,人们对冷藏车方面的相关专业知识的疑问也倍增,前些天收到一位用户发来的咨询,问到D类、E类、F类冷藏车代表的是什么意思呢?小编搜集相关资料后得到了以下结果:冷藏车是加装有...
     

    随着冷藏车在市场上占有量的加大,人们对冷藏车方面的相关专业知识的疑问也倍增,前些天收到一位用户发来的咨询,问到D类、E类、F类冷藏车代表的是什么意思呢?

    小编搜集相关资料后得到了以下结果:

    冷藏车是加装有冷藏车机组的厢式货车,道路冷藏运输车按所采用的厢体与机械制冷机组的匹配要求可分为D、E、F三级。制冷机组应具有如下功能:当环境温度为303 K(+30℃)时,通过配有制冷机组的机械制冷设备,空车厢的内部温度ti可达到各级标准规定的温度或以下,并保持该温度。其中:

    D级: ti ≤273 K (0℃);E级: ti ≤263 K (-10℃);F级: ti ≤258 K (-18℃)。

    通过以上直观的阐述,相信各位一定对D、E、F类冷藏车的区别有了一定的了解,后续在选择类别的时候也能做出合理的判断。为了更好的服务于广大用户,后续我们将进一步的通过问答的形式将专业知识与大家共享。

     
    展开全文
  • 想要从事互联网营销的朋友,那么有一些常见名词是不可不记,具体有哪些常见名词呢? ... 具体公式:CTR=点击/展现 ...运营人员用来分析用户群体和产品匹配度的主要指标。一般有两种情况导致:...

    想要从事互联网营销的朋友,那么有一些常见名词是不可不记,具体有哪些常见名词呢?

     

    CTR (Click Through Rate)点击率

    具体公式:CTR=点击量/展现量

    运营人员用来分析广告投放创意的质量,如果点击率较低,说明创意跟曝光用户的匹配度不高,或者是创意的内容不够吸引人,导致点击率偏低。

     

    CVR (Click Value Rate)转化率,衡量CPA广告效果的指标

    具体公式:CVR=转化量/点击量

    运营人员用来分析用户群体和产品匹配度的主要指标。一般有两种情况导致:一是初选的用户群体与产品不匹配;二是销售人员能力欠佳,话术不到位,导致转化不力。可以先试着调整销售话术,如果依然无法转化,则需要重新选择用户群体。

     

    CPC (Cost Per Click)按点击计费(平均点击价格)

    具体公式:CPC=消费量/点击量

    百度搜索推广主要形式是CPC,CPC最大的好处就是根据点击来付费,如果没被点击,就不用付费。只要不断提高广告的曝光率,能看到广告的潜在用户也就大大增加。

     

    CPM (Cost Per Mille)按千次展现计费(千次展现价格)

    具体公式:CPM=(消费量/展现量)*1000

    目前主流的新媒体平台,其信息流广告模式大多以CPM结算。以大数据为基础,分析用户的浏览习惯后,为用户提供匹配度较高的广告。在广告无法避免的情况下,被动接收与自己相关的广告,对用户来说是最好的选择,对企业一方也不会花冤枉钱。

     

    CPA (Cost Per Action)按成果数计费(每次效果价格)

    具体公式:CPA=消费量/转化量=(CPC*点击量)/(CVR*点击量)=CPC/CVR

    对于企业老板来说,能够根据广告投放效果来付费是最好的选择。知道用户每次行为的成本,例如软件下载次数,软件安装次数,用户留言线索等,可以更方便自己计算企业的ROI。

     

    ROI(Return On Investment):投资回报率

    具体公式:ROI=订单额/消费量(即广告费用)=(单均额*转化量)/(CPA*转化量)=单均额/CPA

    企业老板最看重的一个指标,ROI也叫投入产出比,投入了多少广告费,总共取得了多少销售额,是老板最关心的问题。

     

    此外,还有一些常见名词。

    广告投放类型

    PPC:(Pay-per-Click)是根据点击广告或者电子邮件信息的用户数量来付费的定价模式。

    PPS:(Pay-per-Sale)根据网络广告所产生的直接销售数量而付费的定价模式

    PPL:(Pay-per-Lead)根据每次通过网络广告产生的引导付费的定价模式。

    CPR:(Cost Per Response)每回应成本,以浏览者的每一个回应计费。

    CPP:(Cost Per Purchase)每购买成本,广告主为规避广告费用风险,只有在网络用户点击旗帜广告并进行在线交易后,才按销售笔数付给广告站点费用。

    CPT:(Cost Per Time)每时间段成本,是一种以时间来计费的广告,国内很多的网站都是按照“一个星期多少钱”这种固定收费模式来收费。

    CPD:(Cost Per Download)每下载成本,按用户完成APP下载计费,在应用商店、积分墙、流量联盟比较常见。

    CPI:(Cost Per Install)每安装成本,按用户激活APP计费,渠道按这种模式结算比较少,通常只作为广告主内部衡量广告投放效果的指标之一。

    CPS:(Cost Per Sales)以实际销售产品数量来换算广告刊登金额,是一种以实际销售产品数量来计算广告费用的广告,这种广告更多的适合购物类、导购类、网址导航类的网站,需要精准的流量才能带来转化。

    CPL:(Cost Per Leads)以搜集潜在客户名单多少来收费,即每次通过特定链接,进行应答询问或调查、提供其它信息、注册会员等等事先约定的事宜时,向联盟会员支付事先约定佣金费用的方式。注册成功后付费的一个常见广告模式。这是我们通常所说的引导注册,比如“亚洲交友”。

    广告渠道形式

    SEM:Search Engine Marketing的缩写,意即搜索引擎营销。

    SEO:SearchEngineOptimization,搜索引擎优化。

    EDM:Electronic Direct Marketing的缩写,就是电子邮件营销。

    Banner Ad:(横幅广告)网页顶部、底部或者侧边的广告展示位置。

    Adertorial:软文广告的一种,即付费文章,故意设计成像一篇普通的文章。

    Button:图标广告。PR推广:公关类文章推广。

    Banner:横幅广告。

    DSP展示广告:是Demand-Side Platform的缩写,即需求方平台。

    POP:Point Of Purchase,意为“卖点广告”,又名“店头陈设”。如吊牌、海报、小贴纸、纸货架、展示架、纸堆头、大招牌、实物模型、旗帜等等,都属于的范围。

     

    广告效果指标

    DAU(Daily active user),日活跃用户数量。

    MAU(Month active user),月活跃用户量。

    ARPU: (Average Revenue Per User)即每用户平均收入,衡量公司业务收入的指标。

    CR:(Conversion Rate)是指访问某一网站访客中,转化的访客占全部访客的比例。二跳率:网站页面展开后,用户在页面上产生的首次点击被称为“二跳”,二跳的次数即为”二跳量”,二跳量与浏览量的比值称为页面的二跳率。重复购买率:指消费者在网站中的重复购买次数。

    Return visits:重复访问数量,用户在一定时期内回到网站的平均次数。

    Repeat visitor:重复访问者,在一定时期内不止一次访问一个网站的独立用户。

     

    流量相关名词

    Traffic:访问量,来到一个网站的全部访问和/或访问者的数量。

    UV:(Unique Vister)独立访客,唯一身份访问网站的数字。

    PV:page view,即网站被浏览的总次数。

    IP:即internet protocol,指独立IP数,一天内相同IP地址只被计算一次。

    PR值:全称为Pagerank(网页级别),是用于评测一个网页“重要性”的一种方法。

    Click:(点击量/点击次数)用户点击广告的次数,评估广告效果的指标之一。

    Click Rate:(点击率/点进率)即Click through-Rate:即网络广告被点击的次数与访问次数的比例,即clicks/impressions.如果这个页面被访问了100次,而页面上的广告也被点击了20次,那么CTR为20%,CTR是评估广告效果的指标之一。

    跳出率:(Bounce Rate)跳出率是指浏览了一个页面就离开的用户占一组页面或一个页面访问次数的百分比。

    人均访问页面:PV总和除以IP=人均访问页面。人均访问页面>=10个,才算优质用户。

    Reach:送达,有两个方面的含义:(1)在报告期内访问网站的独立用户,以某类用户占全部人口的百分比表示;(2)对于一个给定的广告所传递到的总的独立用户数量。

     

    互联网术语

    KOL:(Key Opinion Leader)关键意见领袖。 微博、微信有话语权的人。这些人在一些行业可能是专业的,或者非常有经验的,所以他们的话通常都能够让他的粉丝信服。

    UGC:(User Generated Content),也就是用户生成内容的意思。

    PGC:(Professional Generated Content),专家创造内容,名人创造的内容。

    UED:(user experience design)用户体验设计。UED的本意是用户体验设计,即呈现在用户眼前的页面。

    LBS:基于位置的服务,在地理信息系统平台的支持下,为用户提供相应服务的一种增值业务。

    SNS:(Social NetworkingServices)指个人之间的关系网络,即社交网站。

    TMT:数字新媒体(Technology,Media,Telecom)产业。TMT是电信、媒体和科技三个英文单词的缩写的第一个字头,整合在一起。

    SPAM:搜索引擎营销中所说的SPAM是专门针对那些欺骗搜索引擎的信息。

    展开全文
  • 什么意思?比如这是一个正则表达式:/\d/,\d的意思就是任意一个数字,所以这个正则表达式的意思就是匹配一个任意数字。大概明白了吧! 下面我们来看看正则表达式都由些什么东西组成。 一、直接字符 字符...

    首先正则表达式是什么?

    正则表达式是一个自定义规则的表达式,用来匹配符合定义的规则的字符串。什么意思?比如这是一个正则表达式:/\d/,\d的意思就是任意一个数字,所以这个正则表达式的意思就是匹配一个任意数字。大概明白了吧!

    下面我们来看看正则表达式都由些什么东西组成。

    一、直接量字符

    字符 含义
    字母和数字字符 自身
    \t 匹配一个水平制表符
    \v 匹配一个垂直制表符
    \n 匹配一个换行符
    \f 匹配一个换页符
    \r 匹配一个回车符

     

     

     

     

     

     

     

     

     

     

    二、范围类

    字符 含义
    - 例如a-z表示a-z的26个字母
    {n,m} 匹配前一项n到m次
    {n,} 匹配前一项n次或者更多次
    {n} 匹配前一项n次
    * 匹配前一项任意次
    + 匹配前一项至少一次
    ? 匹配前一项0次或1次

     

     

     

     

     

     

     

     

     

     

     

     

     

    什么意思?举个栗子:/[a-z]3{1,3}5+/这个表达式,意思是,任意一个英文字母出现一次,然后出现一到三次数字3,然后数字5至少出现一次。

    下面我们在chrome调试工具中用test()方法试一下:

    注:test()方法用来检验一个字符串是否匹配某个正则表达式,接收一个参数,即目标字符串,如匹配则返回true,否则返回false

    三、字符类

    字符 含义
    [...] 匹配方括号内任意字符
    [^...] 匹配除方括号内字符的其他任意字符
    . 除换行符和行终止符之外的任意字符
    \w 任意单词和下划线,等价于[a-zA-Z0-9_]
    \W \w的否定,等价于[^a-zA-Z0-9_]
    \s 匹配任意一个空白符
    \S 匹配任意一个非空白符
    \d 任意一个数字,等价于[0-9]
    \D 任意一个非数字,等价于[^0-9]
    [\b] 退格直接量

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    什么东西,宝宝看不懂啊!让我们看个例子:/[abc]\w\d{2}/,这个表达式的意思是,匹配abc中任意一个,接下来是一个单词([a-zA-Z0-9])或者下划线,然后是两个数字。看图!

    四、锚字符

    字符 含义
    ^ 表示以……开头,如^a表示字符串的开头是a字母
    $ 表示以……结尾,如b$表示字符串的结尾是b字母
    \b 单词边界,如/\bis\b/匹配is而不匹配this
    \B 非单词边界,如/\Bis\b/可匹配this

     

     

     

     

     

     

     

     

     

    这里说一下^,表示以……开头,我们看个例子:

    作为对比,这里表达式中没有^

    $原理跟^一样,这里不再赘述,只是需要注意一点,$需要写在表达式的最后面。

     

    五、修饰符

    字符 含义
    g 全局匹配,即找到所有匹配,而不是找到第一个就停止
    i 不区分大小写
    m 多行匹配

     

     

     

     

     

     

     

    在没有g修饰符的情况下,正则表达式匹配到第一项即停止匹配,当有g修饰符时,会找到所有匹配项。我们学习一个正则表达式的新方法replace():

    注:replace()方法作用是替换字符串中规定的字符,接收两个参数,第一个参数是一个正则表达式,表示你要替换的内容,第二个参数是一个字符串,表示你要 替换成 的内容。看下面例子!

    只替换了第一个数字,再看下有g修饰符的情况:

    全部数字都被替换了,明白g是干嘛的了吧。

     

    再说i,i修饰符就很简单了,表示不区分大小写,看下面例子:

    加了i之后,不管大小写字母都被替换了!

     

    最后m表示多行搜索,比如要匹配以字母a开头的字符串,在有m修饰符的情况下,换行后以a开头的行也会被匹配。限于篇幅这里不贴图了。

     

    六、分组

    正则表达式中用圆括号()表示分组,每个()表示一个分组。而分组中的内容用$1、$2……表示,仍然看例子:

    比如日期有这两种表示法:月-日-年和年/月/日,怎么把月-日-年换成年/月/日呢?我们看看

    在这个例子中,我们给月、日和年分了组,然后再利用$反向引用,于是实现了日期格式的转换。

     

    七、方法

    关于正则表达式的零零碎碎的东西基本讲完了,下面我们开始学习在正则表达式中用到的方法!有两类,一类是正则表达式对象方法,一类是字符串对象方法。

    一、正则表达式对象方法

    有两个,test()和exec()。test()方法我们学过了,现在讲讲exec()方法。

    exec()方法返回一个数组,数组的第一个元素是匹配的文本,第二个元素是匹配文本的第一个子文本,第三个元素是匹配文本的第二个子文本……以此类推。这样很抽象,看下面例子就懂了!

    exec()的调用又分两种情况:非全局调用和全局调用。

    非全局调用情况:

    看下图例子

     

    这里我们看到,第一次匹配了"a12b",后面两个元素分别是第一个分组"1"和第二个分组"2"。可是第二次执行exec()方法,匹配的依然是"a12b",这是意料之外的。按理说第二次匹配的应该是"c56d",可是为什么还是"a12b"呢?原因就在lastIndex属性上。lastIndex属性表示上次匹配结果的最后一个字符的下一个字符,但是这属性只在全局调用时(即表达式中加了g修饰符的情况)生效,非全局调用时始终为0。作为对比,我们看看全局调用情况!

    全局调用情况:

    可以看到,第一次执行exec()返回了"a12b",lastIndex为4,即为字符串str中数字3的位置;第二次返回了"c56d",lastIndex为10,即为字符串str中数字7的位置。这时lastIndex起作用了,所以两次执行结果都在意料之中。

    二、字符串对象方法

    字符串对象方法有:search()、replace()、match()、split()。

    一、search()方法

    search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果匹配到,则返回第一个匹配结果的index,没匹配到则返回-1。接收一个参数,这个参数可以是字符串,也可以是正则表达式。这个方法每次都从字符串的开头开始匹配。我们看下面例子:

    两次搜索数字2返回的index都是1,而不会是第二个数字2的index5。第三和第四次搜索传入一个正则表达式,都返回了相对应的index。

    二、replace()方法

    这个方法前面已经学过,这里继续。有这几种形式:replace(str,replaceStr)、replace(RegExp,replaceStr)、replace(RegExp,function)。前面两种比较简单,看个例子就懂了:

    第一次传入字符串,把数字2替换成X,第二次传入正则表达式,把全部数字替换成X。

    replace(RegExp,function)方法第二个参数是一个函数,这个方法适用于比较复杂的字符替换,大家有兴趣可以自己找学习资源,这里不作介绍。

    三、match()方法

    match()方法传入一个参数:正则表达式,用来查找字符串中与传入的正则表达式相匹配的文本,如找不到则返回null,如果找到,返回一个数组,这个数组在非全局调用和全局调用时是不一样的,下面分开说。

    非全局调用:

    在非全局调用时,返回的数组是这样的:第一个元素是匹配的文本,第二个元素是匹配文本的第一个子文本,第三个元素是匹配文本的第二个子文本……以此类推。是不是有似曾相识的感觉?没错,这一点和exec()方法一模一样。

    非全局调用时每次查找依然从字符串的开头开始,下面看看全局调用!

    全局调用:

    在全局调用(即正则表达式中有g修饰符)时,返回的数组是这样的:数组的每一项都是匹配的文本,不再有匹配文本的子文本了。

    和正则表达式相匹配的"a12b"和"c56d"都出现在数组里了。其实match()方法和exec()方法作用都是一样的,只不过一个由字符串调用,一个由正则表达式调用而已。

    四、split()方法

    split()方法用于把字符串分割成数组,什么意思呢?看下面例子:

    split()方法接收的参数可以是字符串,也可以是正则表达式。从例子可以看到,参数传什么,就在字符串中去掉什么,然后分割成数组。

    正则表达式在字符串处理中用的非常频繁,希望大家都能学会并在开发中自如运用,今天就讲到这里,欢迎交流,欢迎指正!

    原创文章,转载请注明出处!

    转载于:https://www.cnblogs.com/cme-kai/p/5942633.html

    展开全文
  • 再谈explain

    2021-03-11 23:57:58
    ref:既然你是针对二级索引进行等值匹配,那么跟index_x1索引进行等值匹配的是什么?是一个常量或者是别的字段。const则是指常量值跟index_x1索引里的值进行等值匹配。 rows:意思是返回给MySQL服务层的数据条数,即在...
  • 什么是正则表达式 正则表达式就是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本 简而言之就是是一种模板,用这个模板来匹配字符串 二.如何创建一个表达式 使用...
  • 什么是正则表达式 是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串 ...不论你从事什么职业,如果你经常要进行文本操作,大量的重复性劳动你觉得很没意思,那么赶快学习正则表达...
  • 遗留的补充

    2019-03-26 19:53:48
    今天突然看到数据关联这个词,想了下不知道什么意思,这会再查下,  数据关联是对两个特征标志进行匹配,确定它们是否对应环境中的同一物体,SLAM中的数据关联主要需要完成三个任务:1)新特征标志的检测2)特征...
  • 可是,智慧数字化经营,这几个字究竟说的是什么意思,却并没有几个人讲清楚。 企业的智慧经营,数字化转型究竟是战略问题,还是商业模式的重构? 首先,我们得明白两个概念,什么是战略,什么是商业模式? 战略,是...
  • 在学习python爬虫时,遇到一些网页的正则表达式,起初都不知道啥意思,故而去图书馆找了本正则表达式学习两下。 小知识:HTML代表超文本标记语言 XHTML扩展超文本标记语言 网页通常由大量文本组成,其中一部分是...
  • AR.js自定义标记

    2020-08-12 13:10:58
    这几行代码什么意思呢,就是一个匹配的规则,匹配的文件是data目录中的Market标识,说白了就是用让摄像头识别这个标记,官方示例给的标记是pattern-hiro,这个标记的来源图片对应着data目录中的images/hiro.png 这...
  • linux shell以一串字符作为表达式向系统传达意思,元字符是用来解释字符表达意义的字符。简单来说:元字符就是描述字符的字符,它用于对字符表达式的内容,转化以及各种操作信息进行描述,正则表达式是由一串字符和...
  • 正则表达式的表示就是一些特殊符号的组合,而每个符号代表着一些具体的意思。符合的组合就定义了一套规则和方法,其主要作用就是从大量文本从匹配出符合条件行。2.正则表达式的使用场景在Linux中,正则表达式的主要...
  • 正则表达式的表示就是一些特殊符号的组合,而每个符号代表着一些具体的意思。符合的组合就定义了一套规则和方法,其主要作用就是从大量文本从匹配出符合条件行。2.正则表达式的使用场景在Linux中,正则表达式的主要...
  • MySQL 之全文索引

    2020-05-18 16:44:16
    最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在...你可能会说,用 like + % 就可以实现模糊匹配了,为什么还要全文索引?like + % 在文本比较少时是合适的,但是对于大量的文本数据检索,是
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.20 “semanticsof‘’changeinANSIC”的警告是什么意思? 3.21 “无符号保护”和“值保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配...
  • Perl 语言入门 第六版

    2014-02-12 00:46:55
    习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? Larry干吗不用其他语言? Perl算容易,还是算难? Perl怎么会这么流行? 现在的Perl发展得怎么样了?...
  • grep全面解析

    2021-04-18 17:34:33
    正则表达式的表示就是一些特殊符号的组合,而每个符号代表着一些具体的意思。符合的组合就定义了一套规则和方法,其主要作用就是从大量文本从匹配出符合条件行。 2.正则表达式的使用场景 在Linux中,正则表达式的...
  • 3.20 “semantics of‘>’change in ANSI C”的警告是什么意思? 71 3.21 “无符号保护”和“值保护”规则的区别在哪里? 71 第4章 指针 74 基本的指针应用 74 4.1 指针到底有什么好处? 74 4.2 我想声明一个...
  • 3.20 “semantics of‘>’change in ANSI C”的警告是什么意思? 71 3.21 “无符号保护”和“值保护”规则的区别在哪里? 71 第4章 指针 74 基本的指针应用 74 4.1 指针到底有什么好处? 74 4.2 我想声明一个...
  • 在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题。比方一个看起来没有不论什么问题简单的条件:WHERE c = N’x’ 。假设 c 的数据类型是 varchar。而且表中包括大量的数据,这个查询...
  • 正则表达式的表示就是一些特殊符号的组合,而每个符号代表着一些具体的意思。符合的组合就定义了一套规则和方法,其主要作用就是从大量文本从匹配出符合条件行。2.正则表达式的使用场景在Linux中,正则表达式的主要...
  • 正则表达式的表示就是一些特殊符号的组合,而每个符号代表着一些具体的意思。符合的组合就定义了一套规则和方法,其主要作用就是从大量文本从匹配出符合条件行。2.正则表达式的使用场景在Linux中,正则表达式的主要...
  • 1.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef)  1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{...
  • Java-PHP-C#

    2012-11-27 15:13:36
    上面的意思就是说: "以至少一个规范字符(除.意外)开头,后面跟着0个或者多个以点开始的字符串." 简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" –...
  •  1.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

匹配量什么意思