太原网站科技公司淄博公司制作网站有哪些

张小明 2026/1/2 22:12:26
太原网站科技公司,淄博公司制作网站有哪些,自建站shopify,app开发有几种方式正则表达式基础 简介在线工具 元字符分组与引用运算符优先级贪婪模式 简介 在编写处理字符串的程序或网页时#xff0c;经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说#xff0c;正则表达式就是记录文本规则的代码。 很可能…正则表达式基础简介在线工具元字符分组与引用运算符优先级贪婪模式简介在编写处理字符串的程序或网页时经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说正则表达式就是记录文本规则的代码。很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard)也就是*和?。如果你想查找某个目录下的所有的Word文档的话你会搜索*.doc。在这里*会被解释成任意的字符串。和通配符类似正则表达式也是用来进行文本匹配的工具只不过比起通配符它能更精确地描述你的需求——当然代价就是更复杂。假设你在一篇英文小说里查找 hi你可以使用正则表达式hi。这几乎是最简单的正则表达式了它可以精确匹配这样的字符串由两个字符组成前一个字符是 h,后一个是 i。通常处理正则表达式的工具会提供一个忽略大小写的选项如果选中了这个选项它可以匹配 hi,HI,Hi,hI 这四种情况中的任意一种。不幸的是很多单词里包含hi这两个连续的字符比如 him,history,high 等等。用hi来查找的话这里边的 hi 也会被找出来。如果要精确地查找 hi 这个单词的话我们应该使用\bhi\b。\b是正则表达式规定的一个特殊代码将其称之为元字符代表着单词的开头或结尾也就是单词的分界处。虽然通常英文的单词是由空格标点符号或者换行来分隔的但是\b并不匹配这些单词分隔字符中的任何一个它只匹配一个位置。假如你要找的是hi后面不远处跟着一个Lucy你应该用\bhi\b.*\bLucy\b。这里.是另一个元字符匹配除了换行符以外的任意字符。*同样是元字符不过它代表的不是字符也不是位置而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了先是一个单词 hi然后是任意个任意字符(但不能是换行)最后是 Lucy 这个单词。如果同时使用其它元字符我们就能构造出功能更强大的正则表达式。比如下面这个例子0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串以 0 开头然后是两个数字然后是一个连字号“-”最后是8个数字(也就是中国的电话号码。当然这个例子只能匹配区号为3位的情形)。这里的\d是个新的元字符匹配一位数字(0或1或2或……)。-不是元字符只匹配它本身——连字符(或者减号或者中横线或者随你怎么称呼它)。为了避免那么多烦人的重复我们也可以这样写这个表达式0\d{2}-\d{8}。这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配 2 次(8次)。总的来说正则表达式一种特殊的编程语言专门用来匹配一些特定的字符串。正则表达式一般不会单独使用通常会结合具体的编程语言例如 C、Python、Perl等或者工具vim等使用。在线工具正则表达式本身比较复杂可以借助一些工具来验证所写的正则表达式是否符合预期。Regulex - JavaScript Regular Expression Visualizer.元字符基本元字符MetacharacterDescriptionsExamples\转义字符使后面的字符失去特殊含义或者标记为特殊字符\.匹配实际的点号而不是任意字符\n匹配一个换行符^匹配字符串的开始位置^abc匹配以 abc 开头的字符串$匹配字符串的结束位置xyz$匹配以 “xyz” 结尾的字符串.匹配除换行符(\n)外的任意单个字符a.b匹配 “aab”, “a1b”, “a b” 等*匹配前面的子表达式零次或多次zo*能匹配 “z” 以及 “zoo”匹配前面的子表达式 1 次或多次zo能匹配 “zo” 以及 “zoo”但不能匹配 “z”?匹配前面的子表达式零次或一次do(es)?可以匹配 “do” 或 “does”{n}n 是一个非负整数。匹配确定的 n 次o{2}不能匹配 “Bob” 中的 ‘o’但是能匹配 “food” 中的两个 o{n,}n 是一个非负整数。至少匹配n 次o{2,}不能匹配 “Bob” 中的 ‘o’但能匹配 “foooood” 中的所有 o{n,m}m 和 n 均为非负整数其中n m。最少匹配 n 次且最多匹配 m 次o{1,3}匹配 “fooooood” 中的前三个 ox|y匹配 x 或 yz|food能匹配 “z” 或 “food”[xyz]字符集合。匹配所包含的任意一个字符[abc]可以匹配 “plain” 中的 ‘a’。[^xyz]负值字符集合。匹配未包含的任意字符[^abc]可以匹配 “plain” 中的’p’、‘l’、‘i’、‘n’[a-z]字符范围。匹配指定范围内的任意字符[a-z]可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符[^a-z]可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符\b匹配一个单词边界也就是指单词和空格间的位置er\b可以匹配never 中的 ‘er’但不能匹配 “verb” 中的 ‘er’\B匹配非单词边界er\B能匹配 “verb” 中的 ‘er’但不能匹配 “never” 中的 ‘er’\cx匹配由 x 指明的控制字符x 的值必须为 A-Z 或 a-z 之一。否则将 c 视为一个原义的 ‘c’ 字符\cM匹配一个 Control-M 或回车符\d匹配一个数字字符等价于[0-9]\D匹配一个非数字字符等价于[^0-9]\f匹配一个换页符等价于\x0c和\cL\n匹配一个换行符等价于\x0a和\cJ\r匹配一个回车符等价于\x0d和\cM\s匹配任何空白字符包括空格、制表符、换页符等等等价于[ \f\n\r\t\v]\S匹配任何非空白字符等价于[^ \f\n\r\t\v]\t匹配一个制表符等价于\x09和\cI\v匹配一个垂直制表符等价于\x0b和\cK\w匹配字母、数字、下划线等价于[A-Za-z0-9_]\W匹配非字母、数字、下划线等价于[^A-Za-z0-9_]分组与引用直接在字符后面加上限定符就可以实现重复单个字符。如果想要重复多个字符比如重复 ab可以使用小括号来指定子表达式也叫做分组然后指定这个子表达式的重复次数。例如(ab)可以匹配 “ab”、“abab”、“ababab” 等但不能匹配 “a” 或 “b”。捕获分组正则表达式中有几种不同类型的分组捕获分组是最常见的分组形式它会捕获匹配的内容并分配一个编号从 1 开始。后续可以基于编号访问分组中的内容。示例(\d{4})-(\d{2})-(\d{2})# 匹配日期格式 YYYY-MM-DD这个表达式会创建3个分组① 4位数字的年份② 2位数字的月份③ 2位数字的日期分组引用分组最强大的功能之一是可以在正则表达式内部或外部引用已匹配的内容。在正则表达式内部引用前面的分组使用\num其中 num 是分组索引。(\w)\1# 匹配重复的单词如 hello hello这个 pattern 会匹配两个相同的单词中间用空格分隔其中\1就是对分组的引用。非捕获分组使用(?:pattern)语法表示只分组但不捕获。例如(?:Mr|Ms|Mrs)\. (\w)表示匹配 “Mr. Smith” 但只捕获 “Smith”。命名分组与引用在一些高级语言中还可以为分组指定名称提高可读性不同语言语法可能不同。例如在 Python 中对分组进行命令的方法如下### Named Capturing Group(?Pyear\d{4})-(?Pmonth\d{2})-(?Pday\d{2})### Reference(?Pword\w)(?Pword)运算符优先级正则表达式从左到右进行计算并遵循优先级顺序这与算术表达式非常类似。相同优先级的从左到右进行运算不同优先级的运算先高后低。正则表达式中各种运算符的优先级顺序如下优先级运算符描述1\转义符2()、[]圆括号和方括号3*、 、 ?、 {n}、{n,}、{n,m}限定符4^、$、\任何元字符、任何字符定位点和序列即位置和顺序5|或操作贪婪模式当正则表达式中包含能接受重复的限定符时通常的行为是在使整个表达式能得到匹配的前提下匹配尽可能多的字符。以表达式a.*b为例它将会匹配最长的以a开始以b结束的字符串。如果用它来搜索aabab的话它会匹配整个字符串aabab。这被称为贪婪匹配。有时我们更需要懒惰匹配也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式只要在它后面加上一个?。这样.*?就意味着匹配任意数量的重复但是在能使整个匹配成功的前提下使用最少的重复a.*?b匹配最短的以a开始以b结束的字符串。如果把它应用于 aabab 的话它会匹配 aab第一到第三个字符和ab第四到第五个字符。为什么第一个匹配是aab第一到第三个字符而不是ab第二到第三个字符简单地说因为正则表达式有另一条规则比懒惰贪婪规则的优先级更高最先开始的匹配拥有最高的优先权。对于其他的的重复限定符都支持使用?进入懒惰模式
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

宿迁做网站大公司有声小说网站开发

Komikku终极指南:免费开源漫画阅读器从安装到精通 【免费下载链接】komikku Free and open source manga reader for Android 项目地址: https://gitcode.com/gh_mirrors/ko/komikku Komikku是一款完全免费且开源的Android漫画阅读器,基于Tachiyo…

张小明 2026/1/1 15:59:29 网站建设

word网站的链接怎么做西安做网站朋朋

Qwen3-235B-A22B:单模型双模式切换开启大模型效率革命 【免费下载链接】Qwen3-235B-A22B-MLX-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-235B-A22B-MLX-8bit 导语 Qwen3-235B-A22B凭借235B总参数、22B激活参数的混合专家架构&#xff…

张小明 2026/1/1 15:58:53 网站建设

人才招聘网站模板html南京网站制作

计算机毕业设计springboot汽车智慧检修系统a93520rj (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 当汽车从“机械”进化为“数据孤岛”,每一次打火、每一脚刹车都…

张小明 2026/1/1 15:58:16 网站建设

淮安网站建设哪家好asp网站开发培训

Windows应用程序的用户体验设计 1. 列表管理控件 在开发Windows应用时,列表控件用于以不同方式展示项目列表。Metro风格的列表控件存在于 Windows.UI.Xaml.Control (XAML) 或 WinJS.UI (HTML) 命名空间中。 ItemsControl :在XAML里, ItemsControl 是展示数据集合的…

张小明 2026/1/1 15:57:40 网站建设

简单的手机网站模板下载安装it培训机构哪家强

嵌入式图像转换利器:在线工具实战全解析 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp 在现代嵌入式开发中,图像显示是提升用户体验的关键环节。传统的图像处理流程复杂且效率低下,而image2cpp…

张小明 2026/1/1 15:56:27 网站建设