行业资讯 2025年08月6日
0 收藏 0 点赞 355 浏览 1580 个字
摘要 :

文章目录 行锚定 正则表达式匹配行的开头 (^) 正则表达式,通常称为 regex,是用于模式匹配和文本操作的强大工具。正则表达式模式使开发人员能够执行复杂的字符串搜索……




正则表达式,通常称为 regex,是用于模式匹配和文本操作的强大工具。正则表达式模式使开发人员能够执行复杂的字符串搜索、替换和验证操作。在众多正则表达式功能中,行锚定是精确识别字符串的开头或结尾的关键组件。

在正则表达式中,行锚定具有零宽度,不用于匹配行内的字符。相反,它们精确定位特定的位置 – 要么是行的开头,要么是行的结尾。

在本文中,我们将深入探讨行锚定,并了解它们在正则表达式中的工作原理。

// List of sentences
String[] sentences = {
  \"The sun is shining\",        //0
  \"Apples are delicious\",    //1
  \"The moon is bright\",        //2
  \"Birds are singing\"        //3
};
// Start line anchor (^)
String beginWithPattern = \"^The\";    //Matches lines 0 and 2
// End line anchor ($)
String endWithPattern = \"ing$\";        //Matches lines 0 and 3

行锚定

行锚定是正则表达式的构造,用于确定字符串相对于行的开头或结尾的位置。

要匹配行的开头或结尾,我们使用以下锚定:

  • 脱字符 (^):匹配字符串中第一个字符之前的位置。它确保指定的模式出现在行的开头,没有任何前导字符。
  • 美元符号 ($):匹配字符串中最后一个字符之后的位置。它确保指定的模式出现在行的结尾,没有任何跟随它的字符。

为了更好地理解行锚定,让我们探讨一些简单的示例:

正则 字符串 Matches
^a abc 匹配 a
c$ abc 匹配 c
^[a-zA-Z]+$ abc 匹配 abc
^[abc]$ abc 匹配 a 或 b 或 c
[^abc] abc 不匹配。匹配字符串以除 a、b、c 之外的任何字符开头。
^[mts][aeiou] mother 匹配。搜索以 m、t 或 s 开头,然后紧接着是元音字母的单词。
[^n]g$ king
ng
不匹配。该字符串应以g结尾,但不能以ng结尾。
[^k]g$ kong 匹配
^g.+g$ gang 匹配。单词以g开头和结尾。其间任意数量的字母。

正则表达式匹配行的开头 (^)

\"^<insertPatternHere>\"
  • 插入符号 ^ 匹配字符串中第一个字符之前的位置。
  • 将 ^h 应用于 “howtodoinjava” 会匹配到 h。
  • 将 ^t 应用于 “howtodoinjava” 不会匹配任何内容,因为它期望字符串以 t 开头。
  • 如果我们有一个多行字符串,默认情况下插入符号 ^ 会匹配整个字符串中的第一个字符之前的位置。要匹配任何行中第一个字符之前的位置,我们必须在正则表达式中启用多行模式。 在这种情况下,插入符号从仅匹配整个字符串的开头变为匹配字符串中的任何行的开头。
描述 匹配模式
该行以数字开头 “^\\\\d”或“^[0-9]”
该行以一个字符开头 “^[az]”或“^[AZ]”
该行以字符开头(不区分大小写) “^[a-zA-Z]”
该行以一个单词开头 “^单词”
该行以特殊字符开头 “^[ !@ #\\\\$%\\\\^\\\\&amp;*\\\\)\\\\(+=._-]”
Pattern.compile(\"^[0-9]\").matcher(\"1stKnight\").find();
Pattern.compile(\"^[a-zA-Z]\").matcher(\"FirstKnight\").find();
Pattern.compile(\"^First\").matcher(\"FirstKnight\").find();
Pattern.compile(\"^[!@#\\$%\\\\^\\\\&*\\\\)\\\\(+=._-]\").matcher(\"*1stKnight\").find();

程序输出:

true
true
true
true

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9157.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号