查看“正则表达式断言”的源代码
←
正则表达式断言
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
断言的组成之一是边界。对于文本、词或模式,边界可以用来表明它们的起始或终止部分(如先行断言,后行断言以及条件表达式)。 == 边界类断言 == <span id="section"></span> === <code>^</code> === 匹配输入的开头。比如 <code>/^A/</code> 匹配不了 <code>"an A"</code> 里面的 <code>"A"</code>,但是可以匹配 <code>"An A"</code> 里面第一个 <code>"A"</code>。 备注:<code>^</code> 出现在集合或范围开头时的含义与此不同(参见 <code>group</code>)。 <span id="section-1"></span> === <code>$</code> === 匹配输入的结束。比如 <code>/t$/</code> 不能匹配 <code>"eater"</code> 中的 <code>"t"</code>,但是可以匹配 <code>"eat"</code> 中的 <code>"t"</code>。 <span id="b"></span> === <code>\b</code> === 匹配一个单词的边界,这是一个字的字符前后没有另一个字的字符位置,例如在字母和空格之间。需要注意的是匹配的单词边界不包括在匹配中。换句话说,匹配字边界的长度为零。 <code>\b</code>位置取决于匹配左边界或右边界。 一些例子: * <code>/\bm/</code> 在 <code>"moon"</code> 中匹配到 <code>"m"</code> * <code>/oo\b/</code> 在 <code>"moon"</code> 中不会匹配到 <code>"oo"</code>, 因为 <code>"oo"</code> 后面跟着 <code>"n"</code> 这个单词字符。 * <code>/oon\b/</code> 在 <code>"moon"</code> 中匹配 <code>"oon"</code>,因为 <code>"oon"</code> 是这个字符串的结尾,因此后面没有单词字符 * <code>/\w\b\w/</code> 将永远不会匹配任何东西,因为一个单词字符后面永远不会同时有一个非单词字符和一个单词字符。 匹配退格字符 (<code>[\b]</code>), 查看字符类。 <span id="b-1"></span> === <code>\B</code> === 匹配非单词边界。这是上一个字符和下一个字符属于同一类型的位置:要么两者都必须是单词,要么两者都必须是非单词,例如在两个字母之间或两个空格之间。字符串的开头和结尾被视为非单词。与匹配的词边界相同,匹配的非词边界也不包含在匹配中。例如,<code>/\Bon/</code> 在<code>"at noon"</code>中匹配<code>"on"</code> ,<code>/ye\B/</code> 在 <code>"possibly yesterday"</code>中匹配<code>"ye"</code> 。 == 其他断言 == <blockquote>备注: ?字符也可用作量词 </blockquote> <span id="xy"></span> === <code>x(?=y)</code> === 先行断言: x 被 y 跟随时匹配 x。 例如,对于<code>/Jack(?=Sprat)/</code>,<code>"Jack"</code>在跟有<code>"Sprat"</code>的情况下才会得到匹配.<code>/Jack(?=Sprat|Frost)/</code> <code>"Jack"</code>后跟有<code>"Sprat"</code>或<code>"Frost"</code>的情况下才会得到匹配。不过, 匹配结果不包括<code>"Sprat"</code>或<code>"Frost"</code>。 <span id="xy-1"></span> === <code>x(?!y)</code> === 先行否定断言: x 没有被 y 紧随时匹配 x。 例如,对于<code>/\d+(?!\.)/</code>,数字后没有跟随小数点的情况下才会得到匹配。对于<code>/\d+(?!\.)/</code>匹配(3.141),结果为<code>'141'</code>而不是<code>'3'</code>。 <span id="yx"></span> === <code>(?<=y)x</code> === 后行断言: x 跟随 y 的情况下匹配 x。 例如,对于<code>/(?<=Jack)Sprat/</code>,<code>"Sprat"</code>紧随<code>"Jack"</code>时才会得到匹配。对于<code>/(?<=Jack|Tom)Sprat/</code>,<code>"Sprat"</code>在紧随<code>"Jack"</code>或<code>"Tom"</code>的情况下才会得到匹配。不过,匹配结果中不包括<code>"Jack"</code>或<code>"Tom"</code>。 <span id="yx-1"></span> === <code>(?<!y)x</code> === 后行否定断言: x 不跟随 y 时匹配 x。 例如,对于<code>/(?<!-)\d+/</code>,数字不紧随 <code>-</code> 符号的情况下才会得到匹配。对于<code>/(?<!-)\d+/</code>匹配(3) ,结果为<code>"3"</code>。 而<code>/(?<!-)\d+/</code>匹配(-3),无结果,这是由于数字之前有 <code>-</code> 符号。
返回至“
正则表达式断言
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息