关于正则表达式的教程

9 火华 1天前 116次点击

今天我做搬运工。

不要在网上乱找教程学习正则表达式了。

MT管理器官网,贴心的给我们了详细的教程。

不信请看。

MT管理器用户手册之正则表达式。https://mt2.cn/guide/file/regex.html

如果你只是想在朗读替换中简单的使用正则表达式,而不适作系统学习和技术开发

天坦官方的正则表达式使用说明一定适合你。

我直接粘贴上文本吧!

文本替换之正则表达式 标题 1

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。通过正则表达式,我们可以完成一些高级的文本替换。

一:简单的使用方式 标题 2

以微信聊天中“与 用户昵称 的聊天”为例,开头的“与”和结尾的“的聊天”为固定文本,而中间的用户昵称是会随着你进入不同的聊天会话界面而变化的,那么我们如何通过正则表达式来匹配呢?以下为具体的表示式:

与(.+)的聊天

注意:表达式中涉及到的符号必须为英文符号,所有涉及到正则表达式的内容建议大家使用字符进行浏览,避免符号漏读,导致表示式错误。

核心就是当中的(.+),它的涵义是代表

任意字符

,言外之意它可以匹配任意字符,所以大家只要简单的记住这串字符,就可以用在自己想要替换的文本当中。例如在鸿蒙系统桌面上,会提示”应用名称,双指上滑显示服务卡片“,我们可以通过以下表达式进行匹配:

(.+)双指上滑显示服务卡片

上方的表达式即匹配了华为桌面双指上滑显示服务卡片的文本。上述两个例子我们需要的都是将变化的内容保留,将固定的内容剔除,所以在替换后的文本当中自然就无法使用固定的文本内容进行替换了。那么我们如何来表示替换的结果呢?其实也很简单,将下方的字符填入替换后的文本即可:

$1

注意:涉及到的符号必须为英文符号。

简单的理解,$符号是一个判断的标志,数字1代表第一个可变化的内容,两个例子当中都只有一个可变化的内容,所以用$1表示即可,如果在替换的文本中定义了多个可变化的内容,使用$1$2$3从左往右依次递增即可。

综上:在替换文本的编辑框中使用

(.+)

代表任意字符,在替换后的文本编辑框中使用$1或者固定的文本表示替换后的内容。

二:正则表达式基本知识 标题 2

1. 如果直接给出字符,就是精确匹配。 标题 2

\d

可以匹配一个数字

\w

可以匹配一个字母或数字

.

可以匹配任意字符

所以:

'00\d'

可以匹配

'007'

,但无法匹配

'00A'

'\d\d\d'

可以匹配

'010'

'\w\w\d'

可以匹配

'py3'

'py.'

可以匹配

'pyc'

'pyo'

'py!'

等等;

2. 要匹配变长的字符 标题 2

*

表示任意个字符

(包括0个),

+

表示至少一个字符

?

表示0个或1个字符

{n}

表示n个字符

{n,m}

表示n-m个字符

来看一个复杂的例子:

\d{3}\s+\d{3,8}

,我们来从左到右解读一下:

1.

\d{3}

表示匹配3个数字,例如

'010'

2.

\s

可以匹配一个空格(也包括Tab等空白符),所以

\s+

表示至少有一个空格,例如匹配

' '

' '

等;

3.

\d{3,8}

表示3-8个数字,例如

'1234567'

综合起来,上面的正则表达式可以

匹配以任意个空格隔开的带区号的电话号码

如果要匹配

'010-12345'

这样的号码呢?由于

'-'

是特殊字符,在正则表达式中,要用

'\'

转义,所以,上面的正则是

\d{3}\-\d{3,8}

但是,仍然无法匹配

'010 - 12345'

,因为带有空格。所以我们需要更复杂的匹配方式。

三:进阶 标题 2

要做更精确地匹配,可以用

[]

表示范围,比如:

[0-9a-zA-Z\_]

可以匹配一个数字、字母或者下划线;

[0-9a-zA-Z\_]+

可以匹配至少由一个数字、字母或者下划线组成的字符串,比如

'a100'

'0_Z'

'Py3000'

等等;

[a-zA-Z\_][0-9a-zA-Z\_]*

可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;

[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}

更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。

A|B

可以匹配A或B,所以

(P|p)ython

可以匹配

'Python'

或者

'python'

^

表示行的开头,

^\d

表示必须以数字开头。

$

表示行的结束,

\d$

表示必须以数字结束。

你可能注意到了,

py

也可以匹配

'python'

,但是加上

^py$

就变成了整行匹配,就只能匹配

'py'

了。

全文完

点赞收藏支持一下。

共 17 条评论
可以在要匹配的内容那个编辑框输入.*,然后替换结果那里什么都不用输入,弄好了之后就会发现读屏会变得非常的安静,这玩意还是有一点点风险的,不要乱输入哦

本楼来自:
我的世界肝帝玩家的资源库

火华 [楼主] 1天前
0 
你不要误导新手。
火华 [楼主] 1天前
0 
按照你这么就得把所有字符替换成空。他会啥也不读。会报废的。
啊对,就是这个效果,贪婪匹配,这样读屏就很安静了,一点声音也没有了

本楼来自:
我的世界肝帝玩家的资源库

火华 [楼主] 1天前
0 
你主页都说了,玩机需谨慎。
对我而言,就这个东西简直就是零风险

本楼来自:
我的世界肝帝玩家的资源库

火华 [楼主] 1天前
0 
既然你如此厉害。我是否应该向你学习一下。
我不厉害,我也就懂那基本的那几个符号是干啥用的,而且这玩意我也不是天天研究的啊

本楼来自:
我的世界肝帝玩家的资源库

教程里面的那一堆东西我还没摸透呢

本楼来自:
我的世界肝帝玩家的资源库

火华 [楼主] 1天前
0 
请看看12楼,谢谢。

啊,我qq号是啥来着?或者你在不在我群里

本楼来自:
我的世界肝帝玩家的资源库

火华 [楼主] 1天前
0 
求QQ号。

真的,我是体会到了,现在会正则啥啥都行,不会正则啥啥都不行。

0 
为什么这么说呢?我就是个不怎么懂这个正则的人。

就是你看着读屏在那执拗的,把一大串的内容,其实里面就那么十几个字儿有用的,朗读完。要是有郑泽,直接咔咔一顿操作,直接提取关键内容。

添加一条新评论

登录后可以发表评论 去登录