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

Python 基础篇-正斜杠()和反斜杠()的用法

今天为大家讲一讲正反斜杠的常见应用:一个就是路径里的应用,还有就是反斜杠在正则表达式里的不同。 路径上的应用 首先告诉大家,用于路径上,python是不区分正("/")反("\")斜杠的。...但是呢,反斜杠本身属于转义符,如果"\"后正好有个n,那就会识别为换行符。..."E:\\Python\\Lib\\site_packages" ,我把每个反斜杠都转义。 "E:/Python/Lib/site_packages" ,全是正斜杠,不需要转义。...正则表达式里的反斜杠 正则表达式为什么不同,因为正则表达式要经过两次转义:先经过字符串转义,再来正则表达式自己的转义。...正则表达式想要匹配反斜杠的话,需要写成这样: "\\\\",第一次转义为"\\",第二次转义为"\"。 r"\\",告诉python,第一次不转义了,直接进行第二次转义。 怎么样?

7K10

常用的正则表达式

整理的一些常用的正则表达式 基础用法 ^ 表示字符串的开始位置 $ 表示字符串的结束位置 + 加号前面的字符至少出现一次或多次,等同于{1,} * 星号前面的字符可以不出现、可以出现一次、可以出现多次,...xFF)表示的字符 \uhhhh 匹配一个以四位十六进制数(\u0000-\uFFFF)表示的unicode字符 {n} 恰好重复n次 {n,} 至少重复n次 {n, m} 重复n到m次 () 匹配括号内的内容...[^] 匹配一切字符,其中包括换行符 0-9 匹配0到9中的某一个数字,包括0和9 [\S\s] 匹配一切字符 g修饰符 全局匹配 i修饰符 匹配时忽略大小写 m修饰符 多行匹配 子表达式 正则表达式中使用括号括起来的正则表达式...提取网站域名 https://map.baidu.com/x/y/z 中的 map.baidu.com // 会匹配两次,第一次使用整个正则表达式去匹配,第二次使用子正则表达式去匹配,匹配结果以一个数组的形式返回.../https:\/\/([^\/]+)/.exec("https://map.baidu.com/x/y/z")[1]; // 会匹配两次,第一次使用整个正则表达式去匹配,第二次使用子正则表达式去匹配

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

    Java正则表达式中的十大问题

    使用正则表达式的一个常见问题是提取所有的数字到整数的数组。在Java中,\ d代表的一系列数字(0-9)。...但是,所有参与的状态驻留在匹配器(Matcher)。通过这种方式,Pattern p可以重复使用。和许多匹配器(Matcher)可以共享相同的模式。...4.如何摆脱文本的正则表达式? 一般情况下,正则表达式使用“\”来转义构造,但是这样,Java字符串的转义需要在反斜杠前加上另一个反斜杠,有点痛苦。...6.我们怎样用Java正则表达式才能匹配anbn(a的n次方b的n次方)? 这是字符串a连接相等数量的字符串b,如ab,aabb,并aaabbb,由所有非空字符串组成的的语言。...+b)))实现的,如果匹配,\ 1,自参考匹配,将匹配内括号中的元素,这是第一次迭代中的单个b。 2.第二次迭代,表达式将停在第二个a,然后向前看(再次跳跃)是否有会是b。

    2.4K40

    javascript正则表达式 教程_js正则表达式匹配字符串

    ,却不会返回 反斜杠+数字 匹配到的内容 补充:如果我们用小括号定义的子匹配模式不想被反斜杠+数字引用,我们可以在小括号内部的最前面加上 ?...java后面的字符不作为内容返回,所以最后的匹配结果就是 java 修饰符 正则表达式的修饰符是用以说明高级匹配模式的规则,并且修饰符是放在// 双斜杠外面的,例如这样 /java/g,g就是修饰符 接下来给出一张表...(pattern) // 返回 ['JavaScript'] 匹配成功 我们可以看到,匹配时忽略了大小写的影响,仍然匹配成功了 字符 g 我们之前匹配字符串时,都是匹配到第一个就结束匹配返回内容...,返回一个由匹配结果组成的数组,如果正则表达式使用了修饰符g,则将所有匹配到的结果都放到数组中并返回。...,匹配到了javascript中的java,返回了该字符串,这时lastIndex变为第一次匹配到的字符串的起始位置索引 4;我们进行第二次索引,是从索引 5 开始匹配的,往后检索到字符串末尾的java

    3.4K10

    invalid escape sequence ( 问题处理

    : invalid escape sequence '\('这个告警很简单, 就是说无效的转义序列, 也就是代码里面的反斜杠(\)有问题,但不得(毕竟是告警)复现这个报错我之前没遇到过, 因为我的环境是...既然是Python的Warning, 那么python就有显示所有Warning的参数, 我们使用python --help 果然查询到了参数是 -W那我们可以准备如下代码来复现import reaa....+)\\)').findall('x')扩展还有个神奇的现象, 就是第一次跑有这个Warning, 什么也不做, 直接跑第二次, 就没得了.......为了方便演示, 我们直接使用for循环演示for i in {1..2}; do python3 -Wall main.py /tmp/t1.ibd --sql --limit 1;done我们看到 只有第一次出现了转义告警...总结python执行的时候先转换为字节码, 转换的时候会有一些告警,尤其是正则表达式出现转义时, 我们可以使用real模式(r'str')来处理这个问题.

    46920

    JavaScript正则表达式的模式匹配教程,并且附带充足的实战代码

    ,却不会返回 反斜杠+数字 匹配到的内容 补充:如果我们用小括号定义的子匹配模式不想被反斜杠+数字引用,我们可以在小括号内部的最前面加上 ?...java后面的字符不作为内容返回,所以最后的匹配结果就是 java 修饰符 正则表达式的修饰符是用以说明高级匹配模式的规则,并且修饰符是放在// 双斜杠外面的,例如这样 /java/g,g就是修饰符 接下来给出一张表...(pattern) // 返回 ['JavaScript'] 匹配成功 我们可以看到,匹配时忽略了大小写的影响,仍然匹配成功了 字符 g 我们之前匹配字符串时,都是匹配到第一个就结束匹配返回内容...,返回一个由匹配结果组成的数组,如果正则表达式使用了修饰符g,则将所有匹配到的结果都放到数组中并返回。...,匹配到了javascript中的java,返回了该字符串,这时lastIndex变为第一次匹配到的字符串的起始位置索引 4;我们进行第二次索引,是从索引 5 开始匹配的,往后检索到字符串末尾的java

    1.3K20

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

    匹配.所匹配到的结果的 0 次或者 1 次 g 告诉正则表达式引擎匹配所有匹配项,而不是在第一次匹配后停止 i 使搜索不区分大小写 从文件名中去除无效字符 下载的文件时,其名称中不应包含某些字符。...例如,会把“con”替换掉,但不会替换“concord”,所以 这是有效的文件名。 其中 ,^匹配字符串的开头。 它确保没有其他字符出现在我们要匹配的字符串之前,$则匹配字符串的结尾。...也就是匹配一个或多个空格 g 告诉正则表达式引擎匹配所有匹配项,而不是在第一次匹配后停止 上面的结果是替换了至少重复两次的所有空白字符。...,它确保没有其他字符出现在我们要匹配的字符串之前。...如果没有这个,则正则表达式将匹配URL末尾的所有标点符号 g告诉正则表达式引擎匹配所有匹配项,而不是在第一次匹配后停止 $& 在 replace() 的第二个参数中,将匹配的子字符串插入替换字符串中

    1.8K30

    《剑指offer》– 数组中的逆序对、最小的K个数、从1到n整数中1出现的次数、正则表达式匹配、数值的整数次方

    在把较大的数字复制到辅助数组之后,把对应的指针向前移动一位,接下来进行下一轮比较。...ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。...i; } //前移一位 i = i*10; } return count; } } 四、正则表达式匹配...: 1、题目: 请实现一个函数用来匹配包括’.’和’*’的正则表达式。...模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。

    91120

    内行必看!Python Re 模块超全解读!

    #假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\": #前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠...pat = re.compile('[op]{2}') #o或p出现2次 >>> pat.search('abcooapp').group() #匹配第一次出现的字符串,o比p先出现 'oo' >>> ...pat.findall('abcooapp') #匹配出现的所有字符串,列表形式返回 ['oo', 'pp'] “{m,n}” :匹配字符串出现m到n次 >>> pat = re.compile('[op...() #匹配第一次出现 'ppp' >>> pat.findall('pppabcooapp') #匹配所有 ['ppp', 'oo', 'pp'] .group() #匹配第一次出现 边界 “^” :...iLmsux) iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个 (?#…) #号后的内容将作为注释 (?=…) 之后的字符串内容需要匹配表达式才能成功匹配 (?!

    1.3K40

    Python Re 模块最全解读: 11703 字帮你彻底掌握

    #假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\": #前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠...>>> pat = re.compile('[op]{2}') #o或p出现2次 >>> pat.search('abcooapp').group() #匹配第一次出现的字符串,o比p先出现 'oo'...>>> pat.findall('abcooapp') #匹配出现的所有字符串,列表形式返回 ['oo', 'pp'] “{m,n}” :匹配字符串出现m到n次 >>> pat = re.compile...').group() #匹配第一次出现 'ppp' >>> pat.findall('pppabcooapp') #匹配所有 ['ppp', 'oo', 'pp'] .group() #匹配第一次出现...iLmsux) iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个 (?#…) #号后的内容将作为注释 (?=…) 之后的字符串内容需要匹配表达式才能成功匹配 (?!

    657100

    史上最全 Python Re 模块讲解

    #假如你需要匹配文本中的字符"",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\": #前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。...( abcooapp ) #匹配出现的所有字符串,列表形式返回 [ oo , pp ] “{m,n}” :匹配字符串出现m到n次 >>> pat = re.compile( [op]{2,4} ) #...o或则p出现2到4次 >>> pat.match( pppabcooapp ).group() #匹配开头 ppp >>> pat.search( pppabcooapp ).group() #匹配第一次出现...ppp >>> pat.findall( pppabcooapp ) #匹配所有 [ ppp , oo , pp ] .group() #匹配第一次出现 边界 “^” :匹配字符串开头或行头 >...iLmsux) iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个 (?#…) #号后的内容将作为注释 (?=…) 之后的字符串内容需要匹配表达式才能成功匹配 (?!

    54360

    讲给前端的正则表达式(1):基本概念

    要完全理解它,你需要知道正则表达式包含在两个正斜杠中。尽管这并不是模式中的一部分,但它们用来指示模式的开始和结束。...能够直接在字符串中找到匹配的类型。/dog/ 仅在字符以相同顺序一起出现时才会匹配。...它会匹配方括号中未包含的所有内容。...它会返回一个新字符串,如果字符串的内容能够与模式匹配,则会替换其内容。你可以使用字符串或正则表达式之类的模式。但棘手的是如果你用字符串去执行这个操作,则无法替换所有出现的模式,只能替换一个模式。...到那时,试着练习已经掌握的知识,你将会真正领略到正则表达式的强大。下次见!

    1.3K10

    59分钟学会正则表达式

    每一个正则表达式都有输入(文本)和输出(匹配规则的输出,有时是修改后的文本) 正则表达式有可能出现语法错误——不是所有的字符串都是正则表达式 正则表达式语法很有个性,也可以说很恐怖 有时可以通过编译,使得正则表达式执行更快...在字典中,找到一个不满足“在e之前有i,但是没有c”的例子。...如果你的输入文本是I had an aaawful daaaaay那么在第一次匹配时,只能找到aaawful,只有再次执行匹配时才能找到daaaaay中的aaaaa....那么,你必须在每个双引号或者反斜杠之前加上反斜杠。 你的正则表达式可以是([\“])。...因为它使用了正则表达式\d{16}。 正则表达式应该考虑到用户输入的空格和短横线。 实际上,为什么不先过滤掉所有的非数字字符,然后再进行有效性验证呢?这样做,可以先使用\D以及空的替换表达式。

    1.6K60

    JavaScript 编程精解 中文第三版 九、正则表达式

    在 Unicode 字符顺序中,0 到 9 是从左到右彼此相邻的(代码从48到57),因此[0-9]覆盖了这一范围内的所有字符,也就是说可以匹配任意数字。 许多常见字符组都有自己的内置简写。...第一个元素是与整个模式匹配的字符串,其后是与第一个分组匹配的部分字符串(表达式中第一次出现左圆括号的那部分),然后是第二个分组。...; // → x = 10; console.log(stripComments("1 /* a */+/* b */ 1")); // → 1 1 或运算符之前的部分匹配两个斜杠字符,后面跟着任意数量的非换行字符...你的正则表达式可能意外地在之前的调用留下的索引处开始。...解析INI文件 为了总结一下本章介绍的内容,我们来看一下如何调用正则表达式来解决问题。

    1.7K60

    正则表达式教程:实例速查

    正则表达式通常以这种形式/abc /出现,其中搜索模式由两个斜杠字符/分隔。...[0-9]% 在%符号之前具有0到9之间字符的字符串 [^a-zA-Z] 一个没有字母从A到Z或从A到Z.的字符串,在这种情况下,^被用作表达式的否定->尝试它!...请记住,在括号内的表达式中,所有特殊字符(包括反斜杠\)都会失去其特殊权力:因此我们不会应用“转义规则”。...之前匹配d,但r将不是整体正则表达式匹配的一部分->试试吧! 你也可以使用否定运算符! d(?!r) 仅在不跟随r的情况下匹配d,但r将不是整体正则表达式匹配的一部分->尝试它!...r)d 仅在没有r之前匹配d,但r将不是整体正则表达式匹配的一部分->尝试它!

    1.6K30

    vim 正则表达式

    于是,vim就规定,正则表达式的元字符必须用反斜杠进行转义才行, 如上面的例子,如果确实要用正则表达式,就应当写成 /foo\(1\) 。...例如,查找紧跟在 foo 之后的 bar,perl将模式写在环视的括号内, 而vim将模式写在环视的元字符之前。 # Perl的写法 /(?...匹配包含换行在内的所有字符 \{-} 表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好 \= 匹配一个可有可无的项 \_s 匹配空格或断行 \_[]...3,去掉所有的“//”注释:“:%s!\ s*//.*!!”。首先可以注意到,这儿分隔符改用了“!”...“\_.”匹配包含换行在内的所有字符;“\{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的 字符数越少越好;标志“g”表示一行里可以匹配和替换多次。

    1.5K30

    python,详说正则表达式(对常用的关键字符的讲解)

    官方网址 模块re { re模块提供了一个正则表达式引擎的接口,可以让你将REstring编译在对象并用它们来进行匹配 } 疑问:字符串前加r的作用,反斜杠就不会被任何特殊处理 { 编译标志...-反斜杠排布可以加不同的字符以表示不同特殊意义 -也可以用于出污泥而不染所有的元字符:[或\ ⑴\d匹配任何十进制数,它相当于类[0-9] ⑵\D匹配任何非数字字符,它相当于类[^0-9] ⑶\....如果想匹配前面的符号有一定的范围的话就使用{m,n} import re s='abbbb' r=r'ab{1,3}' #表示b的次数出现1次到3次,包括1和3 print re.findall...决定RE是否在字符串起始的位置匹配 search() 扫描字符串,找到这个RE匹配的第一次的位置 #前两个返回的是一个对象,如果想看到结果 import re s=' aab...,并且返回更改的个数 17.想把符合正则表达式的内容分割 import re s=' 1+2-3*4/5' r=re.compile(r'[\+\-\*/]') #因为+-*都是特殊字符所有要加上\

    39920

    Python 这个宝藏库 re 正则匹配

    特殊字符 $:匹配一行的结尾(必须放在正则表达式最后面) ^:匹配一行的开头(必须放在正则表达式最前面) *:前面的字符可以出现0次或多次(0~无限)(贪婪匹配) +:前面的字符可以出现1次或多次(1~...反斜杠说明 字符串中有反斜杠的,需要对反斜杠做转义 四....group:用于查看指定分组匹配到的内容 groups:返回一个元组,组内为所有匹配到的内容 groupdict:返回一个字典,包含分组的键值对,需要为分组命名 五....中使用正则表达式之前,先使用以下命令导入 re 模块 import re 示例1:具体使用说明 例如: ‘(\d)(a)\1’ 表示:匹配第一是数字,第二是字符a,第三 \1 必须匹配第一个一样的数字重复一次...# 而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。 res2 = re.findall(r'good(.*?)

    1.5K20

    Python中的正则表达式和示例

    | 表示OR(与任何字符匹配 被它分开。 *任意次数(包括0次) +一次或多次 {}指示先前RE的出现次数 匹配。...,'e','a'] 了解输出: 第一次出现是“ Aye”中的“ e”,而不是“ A”,因为它区分大小写。...元字符反斜杠“ \”具有非常重要的作用,因为它可以发出各种序列的信号。如果要使用反斜杠而不使用其特殊含义作为元字符,请使用'\\' \d匹配任何十进制数字,这等效 到设置的类别[0-9]。...输出: ('雨寒已经关注了软件测试~*st', 1) ('雨寒已经关注了软件测试test', 0) 2 雨寒已经关注了软件测试test 函数escape() 语法: re.escape(字符串) 返回所有非字母数字都加反斜杠的字符串...,如果要匹配其中可能包含正则表达式元字符的任意文字字符串,此方法很有用。

    85930

    Python正则表达式的7个使用典范

    但这给在Python中使用正则表达式带来了一个问题,因为在‘re'模块中也使用反斜杠来转义正则表达式中的特殊字符(比如*和+)。...使用 mathch.group 通过数字分组 就像我之前提到的,匹配对象在处理分组时非常得心应手。 分组是对整个正则表达式的特定子串进行定位的能力。...我们可以定义一个分组做为整个正则表达式的一部分,然后单独的对这部分对应匹配到的内容定位。...(3) '555-1212' 组的序数从1开始的原因是因为第0个组被预留来存放所有匹配对象(我们在之前学习match()方法和search()方法到时候看到过)。...P\S+)', contactInfo) 我们还是可以用group()方法获取分组的内容,但这时候我们要用我们所指定的组名而不是之前所使用的组的所在位数。

    50010
    领券