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

一道算法小题分析过程

这个规则其实满足第一种情况,当找不到元音时候,直接在后面加 ay 分析过程 当我们拿到一道算法题目的时候,按照几个套路来「攻城」 算法分类,这道题是字符串题,对于字符操作无非有两种: 索引遍历...replace,replace 尤其以正则不讲武德。...在开发和调试正则时候,推荐 regex101.com/ 来调试正则表达式 通过调试器来完成这个正则:/([^aeiou]*)(\w*)/ 解释下 用两个括号,分成两组 ([^aeiou]*) 表示匹配不是...(^)aeiou 0到多个字符。...元音在开头时候,需要加后缀为way, 也就是当 ([^aeiou]*) 匹配不到 $1 为空时,后缀变成 ay 顺着这个思路完善,JavaScript 字符串 replace 方法第二个参数是支持函数

1K00

正则表达式学习笔记

如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。 假如你要找是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。 .是另一个元字符匹配除了换行符以外任意字符。...这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+匹配重复1次或更多次。 \b\w{6}\b 匹配刚好6个字符单词。 代码 说明 ....(或整个字符第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单,因为已经有了对应这些字符集合字符,但是如果你想匹配没有预定义元字符字符集合(比如元音字母...很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。...^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+匹配不包含空白符字符串。

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

正则表达式学习笔记

匹配除换行符以外任意字符 \w 匹配字母或数字或下划线或汉字 \d 匹配数字 \s 匹配任意空白符 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 看到这些,可能会感到一头雾水...字符类 虽然正则表达式提供了多种元字符供我们选择,但是如果我们想要匹配没有预定义元字符字符串时该怎么办呢,比如我们想要匹配元音字母 aeiou,很显然并没有预先定义字符供我们使用。...正则表达式提供了字符类很好地解决了这个问题。 我们用方括号来指定一个字符集,在方括号中使用连字符来指定字符范围,在方括号字符集不关心顺序。...比如想查找除了数字以外,其它任意字符都行情况,这时需要用到反义: 代码 描述 \W 匹配任意不是字母,数字,下划线,汉字字符 \S 匹配任意不是空白符字符 \D 匹配任意非数字字符 \B 匹配不是单词开头或结束位置...[^x] 匹配除了 x 以外任意字符 [^aeiou] 匹配除了 aeiou 这几个字母以外任意字符 正则表达式: [^c]ar 匹配文本: The car **par**ked in the

39420

正则表达式速查

匹配除换行符以外任意字符 \w 匹配字母或数字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 转义符\ 当要查找元字符本身,如.或*...重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 字符类(choices) [aeiou]匹配任何一个元音字母 [.?!]匹配标点符号(.或?或!)...匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+代表不包含空白符字符串。...=ing\b),匹配以ing结尾单词前面部分(除了ing以外部分),如查找*I'm singing while you're dancing.时,它会匹配sing和danc。 (?...贪婪与懒惰 当正则表达式包含能接受重复限定符时,通常行为是(在使整个表达式能得到匹配前提下)匹配尽可能多字符。 以这个表达式为例:a.*b,它将会匹配最长以a开始,以b结束字符串。

44310

正则表达式30分钟入门教程

(或整个字符第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单,因为已经有了对应这些字符集合字符,但是如果你想匹配没有预定义元字符字符集合(比如元音字母...很简单,你只需要在方括号里列出它们就行了,像 [aeiou]就匹配任何一个英文元音字母, [.?!]匹配标点符号( .或 ?或 !)。...匹配不是单词开头或结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子: \S+匹配不包含空白符字符串。...但是如果多做测试(或者你思维足够敏锐,直接就观察出来了),你会发现,如果q出现在单词结尾的话,像 Iraq,Benq,这个表达式就会出错。...如果匹配成功, search()返回正则表达式在字符首次匹配索引。否则,返回 -1。

94630

正则表达式30分钟入门教程 转

虽然通常英文单词是由空格,标点符号或者换行来分隔,但是\b并不匹配这些单词分隔字符任何一个,它只匹配一个位置。...这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+匹配重复1次或更多次。 \b\w{6}\b 匹配刚好6个字符单词。 表1.常用字符 代码 说明 ....很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。...\B 匹配不是单词开头或结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+匹配不包含空白符字符串。...但是如果多做测试(或者你思维足够敏锐,直接就观察出来了),你会发现,如果q出现在单词结尾的话,像Iraq,Benq,这个表达式就会出错。

88420

「Python」正则表达式

r、\n、\t等) love\syou 可以匹配love you \d 匹配数字 \d\d 可以匹配01 / 23 / 99等 \b 匹配单词边界 \bThe\b ^ 匹配字符开始 ^The 可以匹配...S 匹配非空白字符 love\Syou 可以匹配love#you等 但不能匹配love you \D 匹配非数字 \d\D 可以匹配9a / 3# / 0F等 \B 匹配单词边界 \Bio\B []...匹配来自字符任意单一字符 [aeiou] 可以匹配任一元音字母字符 [^] 匹配不在字符集中任意单一字符 [^aeiou] 可以匹配任一非元音字母字符 * 匹配0次或多次 \w* + 匹配1次或多次...#) 注释 (exp) 匹配exp并捕获到自动命名 (?exp) 匹配exp并捕获到名为name (?:exp) 匹配exp但是不捕获匹配文本 (?...March 对象有个 group() 方法,它返回被查找字符实际匹配文本。

64330

字符串之正则表达式

虽然通常英文单词是由空格,标点符号或者换行来分隔,但是 \b 并不匹配这些单词分隔字符任何一个,它只匹配一个位置。...例如, “o{2,}” 不能匹配 “Bob” “o”,但能匹配 “foooood” 所有 o。“o{1,}” 等价于 “o+” 。“o{0,}” 等价于 “o*”。...6、字符类 要想查找数字、字母、数字、空白已经很简单,因为已经有了对应这些字符集合字符,但是如果你想匹配没有预定义元字符字符集合(比如元音字母 a,e,i,o,u ),应该怎么办?...很简单,你只需要在方括号里列出它们就行了,像 [aeiou] 就匹配任何一个英文元音字母, [.?!] 匹配标点符号( . 或 ? 或 !)。...[^x] 匹配除了 x 以外任意字符 [^aeiou] 匹配除了 aeiou 这几个字母以外任意字符 例子: \S+ 匹配不包含空白符字符串。

3.2K20

C#正则匹配和文本处理

如果打算做替换, 则不需要Match类了. 取而代之是要用到RegexReplace方法。 首先来看看如何在字符串中进行单词匹配操作吧....在前面的实例, 针对子串"the"存在 两个匹配. 这里可以使用另外一种类Matches 类来存储与正则表达式多个匹配....例如,利用前面的代码, 如果把正则表达式变成读取"ba", 那么数组每个单词都会匹配。 问号(?)是一种精确匹配零次或一次数量符. 如果把先前代码正则表达式变为"ba?...例如, 如果字符类[aeiou]来表示元音类, 那么就可以编写[^aeiou]来表示辅音或非元音。...这个正则表达式匹配规则是 : 出现在任意个非标点字符’是’字前面的任意个非标点字符.

2.4K41

正则表达式(理论篇)

匹配除换行符以外任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 转移字符(\) 如果你想查找元字符本身的话...\d{3}-\d{7}红色和绿色只匹配一种,如果直接匹配到红色,则会将绿色短路,所以此处要注意顺序 分组 可以用小括号来指定子表达式(也叫做分组) 例如: (\d{1,3}\.){3}\d{1,3}是一个简单...反义 有时需要查找不属于某个能简单定义字符字符。比如想查找除了数字以外,其它任意字符都行情况,这时需要用到反义。...\W 匹配任意不是字母,数字,下划线,汉字字符 \S 匹配任意不是空白符字符 \D 匹配任意非数字字符 \B 匹配不是单词开头或结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了...aeiou这几个字母以外任意字符

29920

Python 08 re 正则表达式

匹配除换行符以外任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 代码/语法 说明 * 重复零次或更多次...重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 [aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。...\d+匹配1个或更多连续数字。这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+匹配重复1次或更多次。 \b\w{6}\b 匹配刚好6个字符单词。...\B 匹配不是单词开头或结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+匹配不包含空白符字符串。...:re.match只匹配字符开始,如果字符串开始不符合正则表达式,匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配

71900

(待整理完)正则表达式30分钟入门教程

虽然通常英文单词是由空格,标点符号或者换行来分隔,但是\b并不匹配这些单词分隔字符任何一个,它只匹配一个位置。 假如你要找是hi后面不远处跟着一个Lucy,你应该用\bhi\b....\d+匹配1个或更多连续数字。这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+匹配重复1次或更多次。...匹配除换行符以外任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 元字符^(和数字6在同一个键位上符号...匹配一行第一个单词(或整个字符第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单,因为已经有了对应这些字符集合字符,但是如果你想匹配没有预定义元字符字符集合...很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。

62730

正则表达式30分钟入门教程--deerchao

虽然通常英文单词是由空格,标点符号或者换行来分隔,但是\b并不匹配这些单词分隔字符任何一个,它只匹配一个位置。...这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+匹配重复1次或更多次。 \b\w{6}\b 匹配刚好6个字符单词。 表1.常用字符 代码说明 ....很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。...\D 匹配任意非数字字符 \B 匹配不是单词开头或结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+匹配不包含空白符字符串...但是如果多做测试(或者你思维足够敏锐,直接就观察出来了),你会发现,如果q出现在单词结尾的话,像Iraq,Benq,这个表达式就会出错。

1.9K40

所有元音顺序排布最长子字符串--题解

所有元音顺序排布最长子字符串 当一个字符串满足如下条件时,我们称它是 美丽 : 所有 5 个英文元音字母('a' ,'e' ,'i' ,'o' ,'u')都必须 至少 出现一次。...这些元音字母顺序都必须按照 字典序 升序排布(也就是说所有的 'a' 都在 'e' 前面,所有的 'e' 都在 'i' 前面,以此类推) 比方说,字符串 "aeiou" 和 "aaaaaaeiiiioou...给你一个只包含英文元音字母字符串 word ,请你返回 word 最长美丽子字符长度 。如果存在这样字符串,请返回 0 。 子字符串 是字符串中一个连续字符序列。...示例 2: 输入:word = "aeeeiiiioooauuuaeiou" 输出:5 解释:最长子字符串是 "aeiou" ,长度为 5 。...解答思路 如果 word[i]>=word[i-1] 代表有效排序 如果 word[i]>word[i] 代表需要切换到下一个字符比较 如果都不满足,则需要重置类型和长度 只有完全匹配字符 才计算长度

63920

正则表达式 - 学习1

\d+匹配1个或更多连续数字。这里+是和类似的特殊代码,不同是*代表重复任意次(可能是0次),而+代表重复1次或更多次。 \b\w{6}\b 匹配刚好6个字母/数字单词。...我们想要匹配字符,需要我们自定义来写,比如想要匹配aeiou元音字母,只需要[aeiou]就可以了。...比如想查找除了数字以外,其它任意字符都行情况,这时需要用到反义。 \W 匹配任何不是字母和数字字符。 \S 匹配任意不是空白符字符。...\D 匹配任意非数字字符 \B 匹配不是单词开头或结束位置。 [^x] 匹配除了X以外任意字符。...[^aeiou]匹配除了aeiou以外其他字符 例如: ]+> 代表用尖括号括起来以a开头字符串。

32630

两天研习Python基础(九) 文本处理

仅移除首/尾连续字符 默认空格会被除去 如果指定了多个字符,它会被视为集合,并使用其中所有的组合 >>> greeting = ' Have a nice day :) ' >>>...匹配除换行符\n之外字符 | 或操作符,用于匹配多个模式 () 用于模式分组和提取 [] 字符类 - 匹配多个字符一个 \^ 使用\ 匹配字符 量词 描述 * 匹配之前字符0或多次 + 匹配之前字符...匹配之前字符0或1次 {n} 匹配n次 {n,} 匹配至少n次 {n,m} 匹配至少n次,至多m次 字符类 描述 [aeiou] 匹配任何元音 [^aeiou] ^ 倒置选择,所以这会匹配任何辅音...[a-f] 匹配abcdef任意字符 \d 匹配数字,跟[0-9]一样 \D 匹配非数字,跟 [^0-9] 或 [^\d]一样 \w 匹配字母和下划线,跟[a-zA-Z_]一样 \W 匹配非字母和非下划线字符...,跟[^a-zA-Z_] 或 [^\w]一样 \s 匹配空格符,跟[\ \t\n\r\f\v]一样 \S 匹配非空行符,跟[^\s]一样 \b 单词边界,单词定义为字母序列 \B 非单词边界 编译标记

99210

这可能是迄今为止最好一篇正则入门教程-上

虽然通常英文单词是由空格,标点符号或者换行来分隔,但是 \b 并不匹配这些单词分隔字符任何一个,它只匹配一个位置。 假如你要找是hi后面不远处跟着一个Lucy,你应该用 \bhi\b....\d+匹配1个或更多连续数字。这里 + 是和 * 类似的元字符,不同是 * 匹配重复任意次(可能是0次),而 + 匹配重复1次或更多次。 \b\w{6}\b 匹配刚好6个字符单词。...匹配除换行符以外任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始或结束 ^ 匹配字符开始 $ 匹配字符结束 正则表达式引擎通常会提供一个...(或整个字符第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单,因为已经有了对应这些字符集合字符,但是如果你想匹配没有预定义元字符字符集合(比如元音字母...很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。

92510

59分钟学会正则表达式

包含忽略字符例子 a表示匹配字符串[a] [[]\ab]表示匹配字符为”[“或者’’]”或者”a”,或者”b” [\[]]表示匹配字符为”\”或者 “[”或者”]“ 在字符字符重复和出现顺序并不重要...[1-9]与[123456789]相同,都是匹配任意一个非零数字。 练习 使用目前我们已经讲解正则表达式相关知识,在字典匹配找到含有最多连续元音单词,同时找到含有最多连续辅音单词。...答案 [aeiou][aeiou][aeiou][aeiou][aeiou][aeiou] 这样正则表达式,可以匹配连续含有六个元音单词,比如 euouae 和 euouaes。...如果输入文本中有单独ility,首先被捕获是一个空字符串。 你可能会有很多捕获字符串,它们可能靠得很近。捕获组从左向右编号。也就是只需要对左括号计数。...在替换表达式,你可以多次使用捕获组 对于双元音,正则表达式为([aeiou]),替换表达式为\l\l 在替换表达式不能使用反斜杠。比如,你在计算机程序希望使用字符串中使用部分文本。

1.5K60
领券