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

正则表达式–基础篇

1、认识正则表达 正则表达式是对字符串操作一种逻辑公式,就是用事先定义好一些特定字符、及这些特定字符组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串一种过滤逻辑。  ...利用正则我们可以达到如下目的:1. 给定字符串是否符合正则表达式过滤逻辑(称作“匹配”);2. 可以通过正则表达式,字符串中获取我们想要特定部分。 特点是:1. ...2、正则表达组成 正则表达式由一些普通字符(包括大小写字母数字所有标点符号以及一些符号)和一些元字符(特殊字符)组成 3、元字符 列举常用元字符 $   匹配内容结束位置(eg:/joyous$/...,这个是匹配joyus结尾) ()  标记子匹配模块,后面可以使用\1、\2……来取代(eg:/(0-9)[a-z]\1/,这是匹配“数字字母数字) *     匹配前面内容零次或者多次 +     ...,这样[0-9]就等同于\d 4.修正符 i不区分大小写 x忽略内容空白 U贪婪匹配只匹配到最近就停止匹配 m在匹配时候采用多行模式匹配 A强制从头开始匹配 D匹配结束标志为\n 可以使用RegexTester

60950

正则表达式教程

正则表达式入门 概念 字符是计算机软件处理文字最基本单位,可能是字母数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符序列。文本也就是文字,字符串。...^代表每一行开始,$代表每一行结束 ^$ 匹配空行 ^foot$ 匹配只有foot一个词行 元字符出现可以理解为方便书写 基础元字符表 代码 说明 ....匹配除换行符以外任意字符 \w 匹配字母数字或下划线或汉字 \W 匹配任意不是字母数字或下划线或汉字字符 \s 匹配任意空白符 \S 匹配任意非空白符 \d 匹配数字 \D 匹配非数字 \b...匹配单词开始结束 ^ 匹配字符串开始 $ 匹配字符串结束 转义 如果要匹配 C:\\WINDOWS,我们要如何描述\反斜杠呢?...即在原本条件左边附加(?<=expression)。 现在需要找出字母a后面是一个字母d或者是数字词,我们使用a(?=(\d|d)),即可达到效果。即在原本条件右边附加(?

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

正则表达式教程

正则表达式入门 概念 字符是计算机软件处理文字最基本单位,可能是字母数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符序列。文本也就是文字,字符串。...^代表每一行开始,$代表每一行结束 ^$ 匹配空行 ^foot$ 匹配只有foot一个词行 元字符出现可以理解为方便书写 基础元字符表 代码 说明 ....匹配除换行符以外任意字符 \w 匹配字母数字或下划线或汉字 \W 匹配任意不是字母数字或下划线或汉字字符 \s 匹配任意空白符 \S 匹配任意非空白符 \d 匹配数字 \D 匹配非数字 \b...匹配单词开始结束 ^ 匹配字符串开始 $ 匹配字符串结束 转义 如果要匹配 C:\\WINDOWS,我们要如何描述\反斜杠呢?...即在原本条件左边附加(?<=expression)。 现在需要找出字母a后面是一个字母d或者是数字词,我们使用a(?=(\d|d)),即可达到效果。即在原本条件右边附加(?

1.9K30

scanf(%*%,s)是什么意思?

很简单: scanf("%[^\n]",s); 这里意思就是说,除了换行符,其他字符都读入,也就是说前面的空字符也会被读取,就达到了我们目的了。...忽略开头换行符 如果我们一开始就按回车,你会发现,s什么都没有读入,如何忽略开始换行呢?...我们知道,在scanf中,*是跳过相应字符项,比如,跳过开头两个数字: // 来源:公众号【编程珠玑】 // 作者:守望先生 #include int main(void) {...丢弃特定字符 最开始例子中,如果开头是字母,即便想读取数字,也读取不到,那么如何跳过开头字母呢?...总结 scanf是我们刚开始学习C就会接触函数,除了基本用法,今天用法你是否曾经见过呢? scanf读取内容会跳过开头空白字符,遇到换行符或者不是目标字符结束读取。

5.6K42

你可以试试这个 Linux 终端里硬核游戏

白底黑字字母 + 数字”表示飞机,如果数字是 1 位数则代表该飞机高度为几千英尺。大写字母表示螺旋桨飞机,小写字母表示喷气式飞机。...飞入飞机总是以 7000 英尺高度飞行;一架飞机要成功地飞出一个出口,高度必须在 9000 英尺。飞机离开没有必要朝任何特定方向飞行。...在游戏中主要有以下操作: 起飞飞机(增加停在机场飞机高度); 着陆飞机(指示飞机恰好在机场正上方高度为 0); 操纵飞机出口离开。...它表示只有当飞机到达特定信标(或未来版本中其他对象),指令才会执行。 当飞机 到达指定信标(at beacon)执行延迟命令: ab [0-9]。 信标 b 将在未来版本中可以替换成其他对象。...注释以井号 # 开始,以换行符结束。坐标在 (0, 0) 和 (宽度-1, 高度-1) 之间(含)。所有出口坐标必须位于边界上,所有信标和机场必须位于边界内。

1.1K10

你可以试试这个 Linux 终端里硬核游戏

白底黑字字母 + 数字”表示飞机,如果数字是 1 位数则代表该飞机高度为几千英尺。大写字母表示螺旋桨飞机,小写字母表示喷气式飞机。...飞入飞机总是以 7000 英尺高度飞行;一架飞机要成功地飞出一个出口,高度必须在 9000 英尺。飞机离开没有必要朝任何特定方向飞行。...在游戏中主要有以下操作: 起飞飞机(增加停在机场飞机高度); 着陆飞机(指示飞机恰好在机场正上方高度为 0); 操纵飞机出口离开。...它表示只有当飞机到达特定信标(或未来版本中其他对象),指令才会执行。 当飞机 到达指定信标(at beacon)执行延迟命令: ab [0-9]。 信标 b 将在未来版本中可以替换成其他对象。...注释以井号 # 开始,以换行符结束。坐标在 (0, 0) 和 (宽度-1, 高度-1) 之间(含)。所有出口坐标必须位于边界上,所有信标和机场必须位于边界内。

1.1K30

还不会正则表达式?看这篇!

m:多行匹配(multiline);将开始结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)开始结束,而不只是只匹配整个输入字符串开始和最末尾处 Flags可以组合使用...]:匹配 "a" 到 "z" 任意字符 [^a-n]:补集,匹配除"a" 到 "n"其他字符 [A-Z]:匹配 "A"到 "Z" 任意字符 [0-9]:匹配 "0" 到"9" 任意数字 比如匹配所有的字母数字可以写成...常见元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 补集 \w:匹配任意基本拉丁字母表中字母数字,以及下划线;等价于 [A-Za-z0-9_] \W:匹配任意非基本拉丁字母表中字母数字....)/.exec('3.141') 匹配 "141",而不是 "3.141" 应用 上面罗列出了这么多正则表达式语法和规则,可以在一定程度上帮助我们分析和理解一段正则表达式作用,但是如何将这些规则组合并创造出有特定作用表达式还需要我们自己多加练习..., 每部分格式标准为(进行了相应简化,主要为展示如何书写正则): yourname:任意英文字母(a-z/A-Z)、数字(0-9)、下划线

75820

还不会正则表达式?看这篇!

常见flags有: g:全局匹配(global);正则表达式默认只会返回第一个匹配结果,使用标志符g则可以返回所有匹配 i:忽略大小写(case-insensitive);在匹配忽略英文字母大小写...m:多行匹配(multiline);将开始结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)开始结束,而不只是只匹配整个输入字符串开始和最末尾处 Flags可以组合使用...常见元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 补集 \w:匹配任意基本拉丁字母表中字母数字,以及下划线;等价于 [A-Za-z0-9_] \W:匹配任意非基本拉丁字母表中字母数字....)/.exec('3.141') 匹配 "141",而不是 "3.141" 应用 上面罗列出了这么多正则表达式语法和规则,可以在一定程度上帮助我们分析和理解一段正则表达式作用,但是如何将这些规则组合并创造出有特定作用表达式还需要我们自己多加练习..., 每部分格式标准为(进行了相应简化,主要为展示如何书写正则): yourname:任意英文字母(a-z/A-Z)、数字(0-9)、下划线

69210

还不会正则表达式?看这篇!

常见flags有: g:全局匹配(global);正则表达式默认只会返回第一个匹配结果,使用标志符g则可以返回所有匹配 i:忽略大小写(case-insensitive);在匹配忽略英文字母大小写...m:多行匹配(multiline);将开始结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)开始结束,而不只是只匹配整个输入字符串开始和最末尾处 Flags可以组合使用...常见元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 补集 \w:匹配任意基本拉丁字母表中字母数字,以及下划线;等价于 [A-Za-z0-9_] \....)/.exec('3.141') 匹配 "141",而不是 "3.141" 应用 上面罗列出了这么多正则表达式语法和规则,可以在一定程度上帮助我们分析和理解一段正则表达式作用,但是如何将这些规则组合并创造出有特定作用表达式还需要我们自己多加练习..., 每部分格式标准为(进行了相应简化,主要为展示如何书写正则): yourname:任意英文字母(a-z/A-Z)、数字(0-9)、下划线

88340

数学菜鸟AI学习攻略 | 数学符号轻松入门

它真的只是解决一个特定问题一系列步骤。无论你是否意识到,你都在使用算法。如果你需要给孩子们打包午饭,送他们上学,取走干洗衣服,然后去上班,你已经无意识地构造了一系列步骤,厨房到办公室。...只要你前后一致,字母本身是什么并不重要。 但是,一些特定大写字母和符号被保留下来,用来表示重要、常用数字集,例如: ∅ = 空集(集合里什么都没有)。这个符号是一个希腊字母,“phi”。...假如我们有一个数字序列,以1为步长递增。我们可以这样写: x = {1,2,3,4…n} 这些点表示这个序列到n结束,n代表“序列末尾”。所以如果n = 10,这个集合包括1到10数字范围。...首先,你需要知道如何引用矩阵不同部分。 这张图讲得很清楚: 首先我们有矩阵A。用大写字母表示。 矩阵有m行和n列,所以我们叫它m X n 矩阵,用小写斜体字母表示。 行是水平,也就是从左到右。...胜在学习策略 我想用一些可以帮你快速学习策略来结束这篇文章。 我是一个自学者,也就是我一般自己给自己讲解。当我可以放慢脚步,可以自己探索,我可以学得更好。我会犯一些错误。

1.4K40

第四章2:for 循环

这个循环对于5计数是必要并且列印出每一个数字。那么,它又是如何输出这些数字呢?当For循环被创建,range函数默认以0为开头并将0值分配给暂时变量num。我们称每一次循环为迭代。...---- range() Range函数允许我们对一个范围计数,当能够定义开始和在哪结束以及我们需要增加多少和减少多少。这就意味着我们可以计数每一个数字,如果你需要,还可以计数每5个数字。...使用一个For循环,它能够让我们有能力循环一个代码特定次数。在之前例子中,我们看到数字为5,列印出5个数字。这是因为range函数默认为0开始并且每次以步长1增加。...这次我们设定项目数字2开始循环,每次间隔2并到10结束。这时我们输出值就变为“2, 4, 6, 8”。 元素循环 当了解到可迭代数据类型如何工作,这就意味着它们有一个能够实现循环元素收集器。...2.只列印出元音字母:定下一个for循环,列印出用户输入单词(小写)中所有元音字母

67110

Python教程(8)——一文弄懂Python字符串操作(下)

@TOC字符串常用方法字符串在编程中是一种不可或缺数据类型,它在文本和字符数据提供了丰富而强大功能。...)isalnum() 检查字符串是否只包含字母数字字符 isalpha() 检查字符串是否只包含字母字符...rfind(substring, start, end)右侧开始查找子字符串,并返回索引 rindex(substring, start, end)右侧开始查找子字符串,并返回索引...(右边开始)rsplit(separator, maxsplit)右侧开始以指定分隔符分割字符串 rstrip(characters) 移除字符串右边指定字符...zfill(width) 在字符串左侧填充0直到达到指定宽度 以上几乎涵盖了所有字符串操作方法,当然可能会有一些遗漏,欢迎指出

19130

Python自动化测试-正则表达式解析

学习正则表达式最好方法是例子开始,理解例子之后再自己对例子进行修改实践。...3.正则匹配用途 匹配验证: 判断给定字符串是否符合正则表达式所指定过滤规则,从而可以判断某个字符串内容是否符合特定规则(如email地址、手机号码等),当正则表达式用于匹配验证,通常需要在正则表达式字符串首部和尾部加上...匹配除换行符以外任意字符 \ 将下一个字符标记为一个特殊字符‍ \w 匹配字母,数字,下划线或汉字 \s 匹配任意空白符 \d 匹配数字,等价于[0-9] \b 匹配单词开始结束‍ ^ 匹配字符串开始...$ 匹配字符串结束 [abc] 字符组,匹配包含括号内元素字符 2.反义字符 代码/语法 说明 \W 匹配任意不是字母数字,下划线,汉字字符 \S 匹配任意不是空白符字符 \D 匹配任意非数字字符...匹配效率上来看,能达到相同匹配结果,贪婪模式匹配效率通常会比较高,因为它回溯过程会比较少。 5.捕获分组 代码/语法 说明 (exp) 匹配exp,并捕获文本到自动命名组里 (?

1K30

Python自动化测试-正则表达式解析

学习正则表达式最好方法是例子开始,理解例子之后再自己对例子进行修改实践。...3.正则匹配用途 匹配验证: 判断给定字符串是否符合正则表达式所指定过滤规则,从而可以判断某个字符串内容是否符合特定规则(如email地址、手机号码等),当正则表达式用于匹配验证,通常需要在正则表达式字符串首部和尾部加上...匹配除换行符以外任意字符 \ 将下一个字符标记为一个特殊字符‍ \w 匹配字母,数字,下划线或汉字 \s 匹配任意空白符 \d 匹配数字,等价于[0-9] \b 匹配单词开始结束‍ ^ 匹配字符串开始...$ 匹配字符串结束 [abc] 字符组,匹配包含括号内元素字符 2.反义字符 代码/语法 说明 \W 匹配任意不是字母数字,下划线,汉字字符 \S 匹配任意不是空白符字符 \D 匹配任意非数字字符...匹配效率上来看,能达到相同匹配结果,贪婪模式匹配效率通常会比较高,因为它回溯过程会比较少。 5.捕获分组 代码/语法 说明 (exp) 匹配exp,并捕获文本到自动命名组里 (?

92530

Python——中缀到后缀转换(Sta

tokenList = infixexpr.split()     for token in tokenList:         # 这里用到是string模块中两个方法,源代码都是手敲字母数字...3、当token==“(”,opstack中存入“(”,因为转换成后缀就不需要用“()”表示优先级,存起来是用于做优先级判断 ?...4、当token为字母,会添加到postfixList(postfixList是用于存放最终结果列表) ?...8、传入“ * ”,由于上一次传值opstack内元素删光了,直接跳出while循环并在opstack中添加“ * ” ? 9、传入字母,将添加到postfixList ?...14、传入字母,将添加到postfixList ? 15、传入“)”--> 将“ - ”opstack中删除并追加到postfixList中 --> 删除“(” ?

1.6K20

50 行代码教 AI 实现动作平衡 | 附完整代码

这4个数字作为向量 (或数组) 提供给智能体,这非常重要:将状态作为一组数字意味着智能体能够对它进行一些数学运算,以便决定如何根据状态来采取什么行动。...在智能体采取相应操作后,游戏将以下一个状态更新,此时将再次根据其输入策略做出决策,这个过程一直持续到游戏达到某个终止条件结束。...import gym import numpy as np env = gym.make('CartPole-v1') 下面函数定义开始,将游戏重置为开始状态,如下所示。...那么,如何选择一些游戏策略,并在游戏结束只保留那个结果最好策略呢?在这里,制定游戏并不只是生成一个策略,而是通过编写一个循环来生成一些策略,跟踪每个策略执行情况并在最后保存最佳策略。...通过这种方式,能够完美地观察游戏策略是如何让杆达到平衡! ? 如何加速? (1)这里智能体达到平衡速度并不够块。回想前面制定策略,首先只是在0到1范围内随机创建了策略数组,这恰好是有效

72330

50行代码教AI实现动作平衡 | 附完整代码

这4个数字作为向量 (或数组) 提供给智能体,这非常重要:将状态作为一组数字意味着智能体能够对它进行一些数学运算,以便决定如何根据状态来采取什么行动。...在智能体采取相应操作后,游戏将以下一个状态更新,此时将再次根据其输入策略做出决策,这个过程一直持续到游戏达到某个终止条件结束。...import gym import numpy as np env = gym.make('CartPole-v1') 下面函数定义开始,将游戏重置为开始状态,如下所示。...那么,如何选择一些游戏策略,并在游戏结束只保留那个结果最好策略呢?在这里,制定游戏并不只是生成一个策略,而是通过编写一个循环来生成一些策略,跟踪每个策略执行情况并在最后保存最佳策略。...通过这种方式,能够完美地观察游戏策略是如何让杆达到平衡如何加速? (1)这里智能体达到平衡速度并不够块。回想前面制定策略,首先只是在0到1范围内随机创建了策略数组,这恰好是有效

51830

系统地学习正则表达式(一):基础篇

通过正则表达式可以达到如下目的: 给定字符串是否符合正则表达式过滤逻辑(称作“匹配”); 可以通过正则表达式,字符串中获取我们想要特定部分。 2....[A-z] 匹配 ASCII A 到 ASCII z 所有字符(不仅仅匹配所有字母,还匹配在 ASCII 表中 A 到 z 中字符,如 [ 和 ^ 等)。...自定义字符串边界 字符串边界匹配元字符是^和$,分别用于字符串开始结束。...在多行模式下,正则表达式引擎将换行符作为字符串分隔符,^将匹配文本开始或者一行开始,而$则可以匹配文本结束或者是一行结尾处。 修改下上个例子: 正则表达式:(?...m)^[0-9a-zA-Z]{4,}$会去匹配每行用数字或者字母组成,并且位数大于等于四位字符串。 注意:如果使用多行模式的话,(?m)必须放置在正则表达式开始。 (?

42610

Python编程:入门到实践(选记)「建议收藏」

慎用小写字母 l 和大写字母 O ,因为它们可能被人错看成数字 1 和 0 。 要创建良好变量名,需要经过一定实践,在程序复杂而有趣尤其如此。...3.1  列表是什么 列表 由一系列按特定顺序排列元素组成。你可以创建包含字母表中所有字母数字 0~9 或所有家庭成员姓名列表;也可以将任何东西加入列表中,其中元素之间可以没有任何关系。...3.3.4  确定列表长度 使用函数 len() 可快速获悉列表长度。 注意   Python 计算列表元素数 1 开始,因此确定列表长度,你应该不会遇到差一错误。...函数 range() 让 Python 你指定第一个值开始数,并在到达你指定第二个值后停止,因此输出不包含第二个值(这里为 5 )。...在这个示例中,函数 range() 2 开始数,然后不断地加 2 ,直到达到或超过终值( 11 ),因此输出如下: 使用函数 range() 几乎能够创建任何需要数字集,例如,如何创建一个列表,

6.2K50

正则表达式来了,Excel中正则表达式匹配示例

当需要在单元格区域中找到某个值,可以使用MATCH函数。在单元格中查找特定字符串,FIND函数和SEARCH函数非常方便。如何知道单元格中是否包含与给定模式匹配信息?...如何使用正则表达式在Excel中匹配字符串 当所有要匹配字符串都具有相同模式,正则表达式是理想解决方案。...模式:\b[A-Z]{2}-\d{3}\b 其中,[A-Z]{2}表示A到Z任意2个大写字母,\d{3}表示0到9任意3个数字。...如果没有“lemons”,则该点与除换行符以外任何字符匹配。上面的表达式只执行一次检查,*量词重复它零次或多次,由^定位字符串开始到由$定位字符串结束。...记住\w匹配任何字母数字或下划线,我们得到以下正则表达式:[\w\.\-]+ 域名可能包括大小写字母数字、连字符(但不在第一个或最后一个位置)和点(在子域情况下)。

19.5K30
领券