首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

正则表达式笔记

,当然也会有匹配单词边界需求,如果你想查找包含 hi 单词,试一试下面的表达式吧: hi\B 怎么样,简单吧,注意以上元字符匹配是一个边界,不是具体字符。...呵呵,如果 you 这个单词出现在一行末尾,试一试,你还能用这个表达式搜索出来吗? 记住排除型字符组意思是匹配一个未列出字符,不是不要匹配列出字符。 那么正确做法是什么呢?...它意思是匹配字母 u, 且 u 右边不是 x。那我想查找 u 后面是 x 单词怎么办呢?试一试下面的表达式吧: u(?=x) 那我想查找 u 前面是 x 单词怎么办呢?...我们把这四个元字符称为环视(lookaround),它们和我们之前学过单词分界符,行起始和结束符一样,它们只匹配位置匹配具体字符,了解这一点很重要。...更简单点说,y 是可有可无。怎么样?简单吧。之前我们学习了如何匹配空行,还记得吗?

98120

正则表达式

序列 '\' 匹配 "", '(' 则匹配 "("。 ^ 匹配输入字符串开始位置,除非在方括号表达式中使用,当符号在方括号表达式中使用时,表示不接受方括号表达式中字符集合。...以下正则表达式匹配一个正整数, [1-9] 设置第一个数字不是 0, [0-9]* 表示任意多个数字: ➜ ~ echo 'ddddd1235ffff' | sed -E 's/[1-9][0-9]*...如果设置了 RegExp 对象 Multiline 属性,^ 还会与 \n 或 \r 之后位置匹配。 $ 匹配输入字符串结尾位置。...如果设置了 RegExp 对象 Multiline 属性,$ 还会与 \n 或 \r 之前位置匹配。 \b 匹配一个单词边界,即字与空格间位置。 \B 非单词边界匹配。...它即出现在行首又出现在同一行结尾。下面的表达式能确保指定匹配匹配章节匹配交叉引用。通过创建只匹配一行文本开始和结尾正则表达式,就可做到这一点。

84810

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

cap 结束任意单词。...这里总共找到了 2 个匹配,其中有一个不是独立单词 cap。如果只想匹配单词 cap 本身,那么正确模式应该是 \bcap\b。         b 匹配是一个位置不是任何实际字符。...同一个元字符大写形式与它小写形式在功能上往往刚好相反。 三、字符串边界         单词边界可以用来对单词位置进行匹配,如单词开头、单词结尾、整个单词等。...只有当它出现在字符集合里,即位于 [ 和 ] 之间,且紧跟在左方括号后面时,它才表示排除字符集合。如果出现在字符集合之外并位于模式开头,^ 将匹配字符串起始位置。...> 匹配是第 2 行文本。因为 XML 文档起始标签出现在了第 2 行,所以这肯定不是有效 XML 文档,将其作为 XML 文档来处理会导致各种问题。

14830

正则表达式

下面的正则表达式匹配编号为任何位数章节标题: /Chapter [1-9][0-9]*/ 请注意,限定符出现在范围表达式之后。...如果设置了 RegExp 对象 Multiline 属性,^ 还会与 \n 或 \r 之后位置匹配。 $ 匹配输入字符串结尾位置。...如果设置了 RegExp 对象 Multiline 属性,$ 还会与 \n 或 \r 之前位置匹配。 \b 匹配一个字边界,即字与空格间位置。 \B 非字边界匹配。...它即出现在行首又出现在同一行结尾。下面的表达式能确保指定匹配匹配章节匹配交叉引用。通过创建只匹配一行文本开始和结尾正则表达式,就可做到这一点。...上面的句子很显然有多个重复单词。如果能设计一种方法定位句子,不必查找每个单词重复出现,那该有多好。

87610

正则表达式

匹配单个字符 ? 1.4 “*”表示之前字符连续出现任意次数(包括0次) ? 正则表达式贪婪性,匹配到最后一个不能匹配字符 ?...\{x,y\} 表示之前字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只要之前字符连续出现次数在x与y之间,即可被匹配到。...\{,n\} 表示之前字符连续出现至多n次,最少0次,都会陪匹配到。 \{n,\}表示之前字符连续出现至少n次,才会被匹配到。...1.19.3 位置边界匹配相关 ^:表示锚定行首,此字符后面的任意内容必须出现在行首,才能匹配。 $:表示锚定行尾,此字符前面的任意内容必须出现在行尾,才能匹配。...^$:表示匹配空行,这里所描述空行表示"回车","空格"或"tab"等都不能算作此处所描述空行。 ^abc$:表示abc独占一行时,会被匹配到。

81530

C#一些字符表达(一)

作为正则表达式语法(元字符)存在; \b : 匹配单词开始或结束; \B :匹配单词开始或结束; ^ :匹配必须出现在字符串开头或行开头...; $: 匹配必须出现在以下位置:字符串结尾,字符串结尾处\n之前或行结尾; \A: 指定匹配必须出现在字符串开头(忽略Multiline选项);...\z: 指定匹配必须出现在字符串结尾(忽略Multiline选项); \Z: 指定匹配必须出现在字符串结尾或字符串结尾处\n之前(忽略Multiline...(除了“0-9数字”); \B :匹配不是单词开头或结束位置; [abc] :匹配括号中字符; [a-c] :a字符到c字符之间是字符;...[^x] :匹配除了x以外任意字符; [^adwz] : 匹配除了adwz这几个字符以外任意字符; 实例: string str="I am a

75510

正则表达式

\W 匹配不是字母或数字或汉字或下划线字符 \s 匹配任意空白符,如空格、换行符、制表符等 \S 匹配非空白符字符 ....-9]+/匹配0-9最少一个多则不限 定位符 定位符 说明 ^ 定位开始位置字符 $ 定位结束位置字符 \b 定位单词(汉字)边界字符 \B 限定非单词(字)边界字符 举例1: var re=/...ok\b/  匹配ok结尾,可以匹配imok ok拉  哇ok拉 但是不匹配okk imokk  \b是匹配单词或者汉字边界 举例2: var re=/ok\B/  匹配单词或者汉字边界不是ok字符...,不匹配imok ha 可以匹配ABCoka  和用法相反,不匹配 ^说明:^出现在开始是标准匹配开始;出现在[^...]^表示不匹配方括号内字符起否定作用....一旦启用了选项,即符号#之后内容会全部被忽略掉。 正则表达式优先级 什么是优先级?

91320

周末在学习正则,学习过程中发现这 6 个方便正则表达式

例如,会把“con”替换掉,但不会替换“concord”,所以 这是有效文件名。 其中 ,^匹配字符串开头。 它确保没有其他字符出现在我们要匹配字符串之前,$则匹配字符串结尾。...也就是匹配一个或多个空格 g 告诉正则表达式引擎匹配所有匹配项,不是在第一次匹配后停止 上面的结果是替换了至少重复两次所有空白字符。...,它确保没有其他字符出现在我们要匹配字符串之前。...来看看这段代码是如何工作: \b匹配单词边界位置 (https?|ftp|file) 匹配字符https,http,ftp或file。...\b 匹配单词边界 \w 匹配单词字符 + 匹配上一项一次或多次 \1 是一个反向引用,它表示在第一对括号中所匹配文本 \b 匹配单词边界 g 告诉正则表达式引擎匹配所有匹配项,不是在第一次匹配后停止

1.8K30

Day9-字符串-字符模式匹配

冷静分析: 1.当切分出一个单词时,若单词已出现过,那么这个单词对应pattern字符,必须也是之前出现时对应pattern字符 2.当切分出一个单词时,若单词没有出现过,则与之对应...好了,知道怎么用hash map之后,我们可以这样处理逻辑: 1.建立单词到单个字符哈希映射,使用数组used[128]来标志,当前单个字符是否已被使用 2.遍历单词字符串str,按照空格切分单词,...同时移动pattern下标,判断: 如果单词从未出现在哈希表中: 如果当前pattern单个字符已被使用,返回false,不匹配; 如果当前pattern字符没被使用...,那么: 建立单词到单个字符映射,同时标记单个字符已被使用; 如果单词出现在了哈希表中: 检查单词应该匹配字符,是否与当前pattern字符相同,如果相同...,与end函数返回迭代器指针相同,即,当单词从未出现在哈希map中 if (used[pattern[position]]){//若当前pattern字符已使用,返回错误

60030

正则表达式零宽断言详解(?=,?

作用是给指定位置添加一个限定条件,用来规定此位置之前或者之后字符必须满足限定条件才能使正则中字表达式匹配成功。...[A-Z])",它从位置2处开始匹配,它要求所在位置右边不能够是任意一个大写字母,位置右边是大写字母"Z",匹配失败,然后控制权又重新交给字符"a",并从位置1处开始尝试,匹配失败,然后控制权再次交给字符...零宽断言 用于查找在某些内容(但并不包括这些内容)之前之后东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定条件(即断言),因此它们也被称为零宽断言。...接下来四个用于查找在某些内容(但并不包括这些内容)之前之后东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定条件(即断言),因此它们也被称为零宽断言。...= 子表达式) 零宽度正预测先行断言仅当子表达式在此位置右侧匹配时才继续匹配。 例如,\w+(?=\d) 与后跟数字单词匹配不与数字匹配

5.3K50

Python——正则表达式特殊符号及用法

正则表达式语言相对较小,并且受到限制,所以不是所有可能字符串处理任务都可以使用正则表达式来完成。还有一些特殊任务,可以使用正则表达式来完成,但是表达式会因此变得非常复杂。...如果设置了 re.MULTILINE 标志,^ 也匹配换行符之后位置 $ 1. 匹配输入字符串结束位置2. 如果设置了 re.MULTILINE 标志,$ 也匹配换行符之前位置 \ 1....字符类,匹配所包含任意一个字符注1:连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符注2:特殊字符仅有反斜线 \ 保持特殊含义,用于转义字符。...等均作为普通字符匹配注3:脱字符 ^ 如果出现在首位则表示匹配不包含其中任意字符;如果 ^ 出现在字符串中间就仅作为普通字符匹配 {M,N} M 和 N 均为非负整数,其中 M <= N,表示前边..."(注意,因为子组后边还有一个空格) \A 匹配输入字符串开始位置 \Z 匹配输入字符串结束位置 \b 零宽断言,匹配一个单词边界,单词被定义为 Unidcode 字母数字或下横线字符举个栗子:\

1.3K100

正则表达式

如果设置了RegExp对象Multiline属性,^也匹配“\n”或“\r”之后位置。 $ 匹配输入字符串结束位置。...如果设置了RegExp对象Multiline属性,$也匹配“\n”或“\r”之前位置。 * 匹配前面的子表达式任意次。例如,zo能匹配“z”,也能匹配“zo”以及“zoo”。...当字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪。非贪婪模式尽可能少匹配所搜索字符串,默认贪婪模式则尽可能多匹配所搜索字符串。...预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配搜索,不是从包含预查字符之后开始。 (?!...\b 匹配一个单词边界,也就是指单词和空格间位置(即正则表达式匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里\b就是匹配位置)。

19420

视觉词袋模型简介

在“视觉单词袋”中,我们输入是图像不是文本文档,并且我们使用视觉单词来描述图像。 ? 文字文档袋 ? 图像视觉词袋 ?...视觉单词 在BovW中,我们将图像分解为一组独立特征,特征由关键点和描述符组成,关键点与兴趣点是同一件事。它们某些是空间位置或图像中点,这些位置定义了图像中突出部分。...它们受图像旋转、缩放、平移,变形等等因素影响。描述符是这些关键点值(描述),创建字典时所使用聚类算法是基于这些描述符进行。我们遍历图像并检查图像中是否存在单词。如果有,则增加单词计数。...检测视觉单词 现在我们将创建一个(N,K)二维数组,我们将在接下来几行中看到如何填充此数组。...TF-IDF加权 公式清楚表达了图像中每个单词重要性是如何定义。 ? 在经过加权之后直方图中可以看出,蓝色单词权重几乎为零。

1.3K10

30分钟玩转「正则表达式」

\w+:负责匹配电子邮件地址中第一个字符(一个字母数字字符,但是不包括.)。 [\w.]*:负责匹配电子邮件第一个字符之后、@字符之前所有字符——这个部分可以包含零个或多个字母数字字符和.字符。...这个正则表达式匹配了所有字符,不是预期标签内内容。为什么会这样?因为*和+都是所谓贪婪型元字符,它们在进行匹配行为模式是多多益善不是适可而止。 在不需要这种“贪婪行为”时候怎么办?...\b匹配是这样位置,这个位置位于一个能够用来构成单词字符(字母、数字和下划线,也就是与\w相匹配字符)和一个不能用来构成单词字符(\W)之间。 如果不想匹配单词边界,使用\B。...字符串边界 单词边界可以用来进行与单词有关位置匹配单词开头、单词结束、整个单词)。字符串边界有着类似的用途,用来进行与字符串有关位置匹配(字符串开头、字符串结束、整个字符串)。...小结 正则表达式不仅可以用来匹配任意长度文本块,还可以用来匹配出现在字符串中特定位置文本。\b用来指定一个单词边界(\B刚好相反)。^和$用来指定字符串边界(字符串开头和结束)。

1.8K20

笔记·正则表达式和re库

序列 ‘\‘ 匹配 “", ‘(‘ 则匹配 “(“。 ^ 匹配输入字符串开始位置,除非在方括号表达式中使用,此时它表示不接受字符集合。 { 标记限定符表达式开始。...如果设置了 RegExp 对象 Multiline 属性,^ 还会与 \n 或 \r 之后位置匹配。 $ 匹配输入字符串结尾位置。...上面的句子很显然有多个重复单词。如果能设计一种方法定位句子,不必查找每个单词重复出现,那该有多好。...若要防止匹配被保存以备将来使用,请在括号内正则表达式模式之前放置 ?:。下面的修改提供相同能力不保存子匹配项: /^(?...例如,如果上面的表达式匹配 Windows 98,将在 Windows 之后不是在 98 之后继续搜索。

97330
领券