首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则表达式必知必会 - 位置匹配

一、边界         位置匹配用于指定应该在文本中什么地方进行匹配操作,先来看一个例子。...二、单词边界         第一种边界,也是最常用到的,是由 \b 指定的单词边界。b 是英文 boundary 的首字母,顾名思义,\b 用来匹配一个单词的开头或结尾。...该模式并不匹配单词 scattered 中的字符序列 cat,因为它的前一个字符是s、后一个字符是t,这两个字符都不能与 \b 相匹配。         \b 到底匹配什么东西呢?...用 \bcat\b 匹配到的字符串的长度是 3 个字符(c、a、t),不是 5 个字符。如果不想匹配单词边界,那么可以使用 \B。下面的例子使用 \B 来查找前后都有多余空格的连字符。...B 将匹配一个前后都不是单词边界的连字符。

17030

模式匹配

模式中的特殊字符 字符 + :一个或多个相同的字符,如:/ab+/在字符串abbc中匹配的将是abb,而不是ab。 字符 *和? :它们与+类似,区别在于*匹配0或任意个相同字符,?...锚模式 ^ 或 \A仅匹配串首$ 或 \Z仅匹配串尾\b匹配一个单词边界,也就是指单词和空格间的位置, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。...\B匹配非单词边界, 'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。...非空白[^ \r\t\n\f] 匹配:m/regexp>/;m可省略,匹配成功返回真,否则返回假 替换:s///; 翻译:tr/str1/str2.../; 把str1中的第一个字符替换为str2中的第一个字符,把str1中的第二个字符替换为str2中的第二个字符,依此类推; 知识点回顾 匹配:m/regexp>/; 替换:s/

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浅析JavaScript正则表达式

    注:如果左边的选择项匹配就会忽略右边的匹配项,即使它产生更好的匹配 2.组合引用 正则表达式中的圆括号 () 有多中作用: a.一个是把单独的项组合成子表达式; b.一个是在完整的模式中定义子模式; c...6.指定匹配位置 正则表达式中匹配位置是一个难点 锚字符与断言 字符 含义 ^ 匹配字符串的开头,在多行检索中匹配一行的开头 $ 匹配字符串的结尾,在多行检索中匹配一行的结尾 \b 匹配一个单词的边界...,就是位于\w与\W之间的位置 \b 匹配非单词边界的位置 (?...仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,/w+(?=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!=x) 零宽度负先行断言。...仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!/d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?<=X) 零宽度正后发断言。

    1.6K30

    从今天起开启对正则表达式的学习

    两者的匹配效果是一样的,仅返回第一次匹配成功的结果 继续看代码 var s = "aaa bbb ccc"; var reg = /\b\w+\b/g; var rs_match = s.match(reg...,两者的匹配结果出现区别 全局匹配时,match会返回所有匹配上的内容;而exec仅匹配单次匹配上的内容 全局匹配且进行多次匹配时,exec会从上次匹配结束的下一位开始匹配,返回本次匹配上的内容,直至无可以匹配的内容..., console.log(/[0-9]/.test(0));//=>true 字符组中的中划线“-”并不能匹配“-”字符 console.log(/[0-9]/.test("-"));//=>false...上面代码中的^$都是元字符,在正则匹配中他们有着特殊的意义,这就是元字符,属于范围类字符 ( [ { ^ $ | ) ?...⚠️注意不能紧跟于左中括号的后面,在左中括号的后面就是取反了,要区分 $:结尾 b:单词边界 指[a-zA-Z_0-9]之外的字符 B:非单词边界 实例的属性 global 标示正则表达式是否指定了全局模式

    52320

    正则表达式高级

    *+c匹配abc, .*会匹配优先地匹配到abc三个字符, 如果没有+时发现匹配失败就会回溯到.*匹配两个的情况,这时匹配成功; 而有+就占有不还回去了,匹配失败。...仅分组不捕获(?:...) 固化分组(golang不支持)(?>...) 注释(宽松排列时 golang不支持)# ... Java不支持: 条件(Python)(?...边界 锚点: 行始^ 文始\A \G 行末$ 文末\Z \z 单词边界\b 非单词边界\B 环视结构(零长度断言,golang不支持): 顺序环视 左边是A:(?...m)多行模式(^和$匹配整个字符串的头尾)MULTILINE (?s)点号通配模式(.匹配任意字符)DOTALL Java (?idmsuxU-idmsuxU) (?...a)仅ASCII (?L)语言依赖 其他 (?o)编译一次(提升性能,Perl) (?U)忽略优先模式交换x*和x*?...的含义(golang) 也可以这样用:(?-i) (?

    1.1K20

    javascript正则深入以及10个非常有意思的正则实战

    y)x 字符集合和反向字符集合的用法[xyz]/[^xyz] 词边界和非单词边界匹配/b/B 空白字符/非空白字符匹配/s/S 单字字符/非单字字符匹配/w/W 正则10大应用案例 正文 对于正则的基本用法笔者这里就不总结了...\1 和 \2 表示第一个和第二个被捕获括号匹配的子字符串,即 xuxi 和 is,匹配了原字符串中的后两个单词, 因此(1)中运行的结果为true....词边界和非单词边界匹配\b\B \b 匹配一个词的边界。一个词的边界就是一个词不被另外一个“字”字符跟随的位置或者前面跟其他“字”字符的位置,例如在字母和空格之间。注意,匹配中不包括匹配的字边界。...换句话说,一个匹配的词的边界的内容的长度是0。 \B 匹配一个非单词边界。...解释: (1)中匹配到了单词边界,即xi, 为该字符串的末尾.(2)中应为xu为非单词边界,所以会被其匹配到.

    66020

    正则表达式 - 简单模式匹配

    例如 regexp_like(a,'Ship') 函数的意思是匹配字段 a 中带有 Ship 文本的行,缺省不区分大小写。...在英语环境中,与 \w 匹配相同内容的字符组为:[_a-zA-Z0-9]         \W 匹配非单词字符,匹配空格、标点以及其他非字母、非数字字符。...字符简写式 描述 \a 报警符 [\b] 退格字符 \c x 控制字符 \d 数字字符 \D 非数字字符 \w 单词字符 \W 非单词字符 \0 空字符 \x xx 字符的十六进制值 \o xxx 字符的八进制值...匹配单词边界         下面我们再试试匹配单词的边界和字母的开始和结束位置: \bA.{5}T\b         可以看到细微的差异:         这个表达式有更强的特指性(请记住特指性,...简写式 \b 匹配单词边界,不消耗任何字符;字符 A 和 T 限定了字符序列的首尾字母;.{5} 匹配任意五个字符;简写式 \b 匹配单词的另一个边界。

    79210

    正则表达式用法简介与速查

    位置元字符 元字符 说明 补充说明 \b 匹配单词的边界 \b 的判断依据是:位置两边分别为 \w 和 \W \B \b 的反义,匹配非边界 \B 的判断依据是:位置两边同为 \w 或同为 \W \<...解释: 单词边界匹配符 \b 判断单词边界的依据是: 它的左右两边分别是一个 \w 和 一个 \W。注意:位置元字符 \b 仅匹配位置,其本身并不匹配任何实际出现的字符。...在本例中,car 单词的开头处,其左边是一个空格(即\W),右边是一个字母 c(即\w),符合 \b 的边界判断条件。...car 单词的结尾也类似,car 单词结尾处,其左边是一个字母 r(即\w),右边是一个空格(即\W),亦符合 \b 的边界判断条件, 故2个 \b 的中间不分的 car 被匹配出来。...其中,4个黑色文字的子表达式分别表示前述4种情况的匹配, 它们之间用逻辑或并列嵌入到外层的一个子表达式中(红色括号),最前面的 \b 匹配单词边界, 最后的 \. 匹配点号。

    3.7K20

    java中正则表达式的使用

    java中正则表达式的使用 相关API类的使用示例 java中正则表达式匹配,主要使用api中的个类:Pattern、Matcher、PatternSyntaxException Pattern 类的静态方法...Pattern 类的另一个静态方法可以一步匹配正则表达式:Pattern.matches(regexp, arg);,该方法得到的模式实例是不可变的,是多线程安全的。...[a-dm-p] [a-z&&[def]] d, e, or f任意一个字符 [a-z&&[^bc]] a-z中任意非b、c的一个字符,等同于 [ad-z] [a-z&&[^m-p]] a-z中任意非...v] \w 任意一个单词字符,等同于 [a-zA-Z_0-9] \W 任意一个非单词字符,等同于 [^\w] 边界匹配类 ^ 开始字符,后面接的第一个字符表示是 第一个字符。...\b 单词字符边界 \B 非单词字符边界 \A 输入的开始 \G 前一个匹配的结尾 贪心匹配 X?

    36520

    JavaScript 编程精解 中文第三版 九、正则表达式

    另一方面,如果我们想要确保日期字符串起始结束位置在单词边界上,可以使用\b标记。...在位置 9(三路分支之后),有一条路径跳过了s这个盒子,直接到达最后的单词边界,另一条路径则匹配s。这里有一个s字符,而非单词边界,因此我们通过s这个盒子。...我们在位置 10(字符串结尾),只能匹配单词边界。而字符串结尾可以看成一个单词边界,因此我们通过最后一个盒子,成功匹配字符串。...全局和粘性选项之间的区别在于,启用粘性时,仅当匹配直接从lastIndex开始时,搜索才会成功,而全局搜索中,它会搜索匹配可能起始的所有位置。.../:任意字符(除换行符外) /\b/:单词边界 /^/:输入起始位置 /$/:输入结束位置 正则表达式有一个test方法来测试给定的字符串是否匹配它。

    1.7K60

    正则表达式之javascript

    / //匹配3个单词加一个可选数字 /\s+java\s+/ //匹配java单词前后至少一个空格 /[^(]*/ //匹配以一个或者多个左括号开始的字符 5.非贪婪 重复为尽可能的多匹配,非贪婪模式是尽可能的少匹配...只组合,把项组合到一个单元,但不记忆与改组相匹配的字符 \n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也可能是嵌套的),组索引是从左到右的左括号数,(?...: 形式的分组不编码 7.锚字符 ^ 匹配字符串的开头,在多行检索中匹配一行的开头 $ 匹配字符串的结尾,在多行检索中匹配一行的结尾 \b 匹配一个单词的边界,就是位于\w与\W之间的位置 \B...匹配非单词边界的位置 (?...对象 RegExp第一个参数包含正则表达式的主体部分,也就是直接量中两条斜线之间的文本,不论是字符串直接量还是正则表达式都使用  字符作为转义字符的前缀, 因此当给RegExp()传入一个字符串表述正则表达式时

    79430

    ES6学习笔记(七)正则表达式

    ,\x0b 垂直制表符等 [\S] 匹配非空白符 \w 匹配单词字符,包括数字,字母,下划线 \W 匹配非单词字符,除数字,字母,下划线之外的所有字符 ....等价于 {0,1} ‘o{2}’ 不能匹配 "do" 中的 ‘o’,但是能匹配 "food" 中的两个 o ‘o{2,}’ 不能匹配 "do" 中的 ‘o’,但是能匹配 "food" 中的两个 o以及"...有两种创建方法,分别如下: 字面量创建方法 let reg = /\bis\b/g; //表示全局匹配左右的单词边界为is的所有字符 let str = "He is a boy....0000000000 1.7 边界 字符 描述 ^ 以 xxx 开始 $ 以 xxx 结束 \b 单词边界 \B 非单词边界 举个例子: let str = "This is a boy"; console.log...0 a boy console.log(str.replace(/\Bis\b/g, "0"));// 全局匹配左边界不是完整单词右边界是单词的字符,输出Th0 is a boy let str =

    60610

    jq正则表达式_JAVA 正则表达式

    (x|y) 查找任何以 元字符是拥有特殊含义的字符: 元字符 描述 d 查找数字。 s 查找空白字符。 b 匹配单词边界。 uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。...使用 RegExp 对象 在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。 使用 test() test() 方法是一个正则表达式方法。...exec() 方法用于检索字符串中的正则表达式的匹配。 该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。...比如,以下是等价的: var re = new RegExp(“\w+”); var re = /w+/; 修饰符 修饰符用于执行区分大小写和全局匹配: 修饰符 描述 执行对大小写不敏感的匹配。...匹配单词边界。 匹配非单词边界。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    1.8K20

    JavaScript中的正则表达式

    RegExp对象正则处理常用的方法: 方法 描述 使用 test 匹配参数是否出现在字符串中 regExp.test(str); exec 返回匹配模式的字符串 regExp.exec(str); String...捕获:在正则匹配中,子表达式匹配到的内容会被系统捕获到系统的缓冲区中。 反向引用:当捕获以后,可以在匹配模式中使用\n(n表示数字,从1开始),来引用系统中第几号缓冲区的内容。...); console.log(result);// ["12345", "5678"] 上式中123其实也是满足我们的正则表达式,但是JS中的正则匹配是贪婪匹配的,他会尽可能多的去匹配。...定位符 含义 ^ 匹配开始的位置 $ 匹配结束的位置 \b 匹配一个单词边界,前面是开始位置或者后面是结束位置,或者有空格 \B 匹配非单词边界 如var regExp = /^h/gi;匹配以h开头的内容...标示a或者b或者c或者d [^A-Z] 标示排除A-Z外的任意一个字符 \d 匹配一个数字,即[0-9] \D 匹配一个非数字,即[^0-9] \w 匹配单词字符,也就是数字字母下划线,即[0-9a-zA-Z

    1K20
    领券