python和javascript的正则表达式

本文介绍了Python和JavaScript中正则表达式的使用,包括Python中的raw string、修饰符及其意义,以及正则表达式的实例和分组调用。同时,文章提到了JavaScript中的正则表达式分隔符、全局匹配标志和正则限定符的使用。两者在正则表达式的语法和功能上有许多相似之处,但也存在一些细节上的差异,如分组调用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python
1在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash ‘’ 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上’r’。

例:r"\n\n\n\n\n\n”
作用:声明后面的字符串是普通字符串

特殊字符串中含有:转义字符 \n \t 什么什么的

用途:一般用在 正则表达式、文件绝对地址

r’\t’,等价于 \t )匹配相应的特殊字符
2
修饰符 描述
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

3实例比较好的
https://blog.youkuaiyun.com/weixin_44258187/article/details/85307979

4group的正则表达式中调用,比较方便调取重复的部分,
比如 我我,,我我我,
r(’.?)/1+’
. 代表任何字符,?代表非贪婪模式只匹配一个字,使用/1来表示用匹配到的 我 来匹配第二个字,+代表“使用/1来表示用匹配到的 我 来匹配第二个字”执行多次,一直匹配后面的字,这样就可以匹配多个重复的我字,使用sub替代方法,用/1代表匹配到的一个字我来代替就消除了重复值。

快速理解:
我们创建一个正则表达式
var RegExp = /^(123)(456)\2\1KaTeX parse error: Expected 'EOF', got '\1' at position 72: … = /^(123)(456)\̲1̲/;
这个正则表达式匹配到的字符串是
123456123
创建另外第三正则表达式
var RegExp1 = /^(123)(456)\2$/;
这个正则表达式匹配到的字符串是
123456456

这个\1 \2… 都要和正则表达式集合()一起使用
简单的说就是
\1表示重复正则第一个圆括号内匹配到的内容
\2表示重复正则第二个圆括号内匹配到的内容

5模块方法re和正则表达式compile后调用的两种方式来使用

6python下的方法

7常用的符号和含义
567请看下文链接
https://www.runoob.com/python3/python3-reg-expressions.html

js
1
/{{(.+?)}}/g
最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束。
最后的“g”标志表示正则表达式使用的global(全局)的状态。使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个。这也被称为全局匹配。【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示允许跨行)】
然后我们再来看中间的主体部分:{{(.+?)}}花括号{}是正则里的限定符。但是我们这里是要找字符串里的花括号,所以前面加个“\”来表示是要找字符的花括号。“{{”“}}”就是找前后两组花括号。
“.”表示任意字符。“+”表示前面表达式一次乃至多次。“?”表示匹配模式是非贪婪的。
/{{(.+?)}}/g完整的意思就是:在全部范围内查找匹配前后有两组花括号的字符串。
例如:“{{}}”、“{{asdfasdfasdf56745}}”、“{{yuyuy#$%8787 9+_)(*)87 }}”

在这里插入图片描述
没有开始和结束的意思就是被匹配的字符串哪里有都可以,有了开头或者结尾符号,则是只能在开头或者结尾是这个样子的
在这里插入图片描述
?用来取消贪婪模式,贪婪模式是指匹配字符的后面的也会输出,即尽量多的匹配
在这里插入图片描述
m代表多行

分组符([],(),{});

字符 含义
() 如果想要重复多个字符该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了。
eg: (\d{1,3}.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。
[] 代表一个字符集合。匹配方括号的中任意字符,包括转义序列。你可以使用破折号(-)来指定一个字符范围。对于点(.)和星号(*)这样的特殊符号在一个字符集中没有特殊的意义。他们不必进行转义,不过转义也是起作用的。
例如,[abcd] 和[a-d]是一样的。他们都匹配"brisket"中得‘b’,也都匹配“city”中的‘c’。/[a-z.]+/ 和/[\w.]+/都匹配“test.i.ng”中得所有字符。
{} 表示量词的范围的。

7实例
https://www.cnblogs.com/mopagunda/p/4659972.html

8总结一下,首先均有声明正则表达式的部分python使用r’ '来表示,js使用/ /来表示,第二均有声明模式的部分,python是在方法调用时作为参数引入, js是在 / /后直接书写,如/ /i。二者在大部分的符号表示上是一致的,在分组的调用上有书写差别js的如下
https://blog.youkuaiyun.com/qq_34356563/article/details/77844689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值