川奈. 发表于 2022-8-23 11:48

正则表达式入门

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真阅读本教程,加上应用的时候进行一定的参考,掌握正则表达式不是问题。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,您很可能使用 ? 和 * 通配符来查找硬盘上的文件。? 通配符匹配文件名中的 0 个或 1 个字符,而 * 通配符匹配零个或多个字符。像 data(\w)?\.dat 这样的模式将查找下列文件:

data.dat
data1.dat
data2.dat
datax.dat
dataN.dat
使用 * 字符代替 ? 字符扩大了找到的文件的数量。data.*\.dat 匹配下列所有文件:

data.dat
data1.dat
data2.dat
data12.dat
datax.dat
dataXYZ.dat
管这种搜索方法很有用,但它还是有限的。通过理解 * 通配符的工作原理,引入了正则表达式所依赖的概念,但正则表达式功能更强大,而且更加灵活。

正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例:https://www.runoob.com/wp-content/uploads/2014/03/CEBB49BB-B1AD-4539-AC7A-B40DDC62D1B2.jpg
^ 为匹配输入字符串的开始位置。

+匹配多个数字, 匹配单个数字,+ 匹配一个或者多个。

abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。

我们在写用户注册表单时,只允许用户名包含字符、数字、下划线和连接字符 -,并设置用户名的长度,我们就可以使用以下正则表达式来设定。
https://www.runoob.com/wp-content/uploads/2018/09/regexp-cn.png
以上的正则表达式可以匹配 runoob、runoob1、run-oob、run_oob, 但不匹配 ru,因为它包含的字母太短了,小于 3 个无法匹配。也不匹配 runoob$, 因为它包含特殊字符。

syy 发表于 2022-8-23 13:48

{:301_998:}正则在python中有re 也有xpath还有一种是bs4 ,这些大致都是通的对前端r‘ <h>(.*?)</h>.*? 提取所需要的数据

xiaomm250 发表于 2022-8-23 13:55

没事多在vim中用几下正则,很快你就能记住了!

xiaoran1431 发表于 2022-8-23 14:31

正则表达式 我永远的痛

一笑懸命桑 发表于 2022-8-23 14:41

多出点之前想学 死活看不懂

stitch007 发表于 2022-8-23 14:47

正则这东西 学一次忘一次

塞北的雪 发表于 2022-8-23 14:57

stitch007 发表于 2022-8-23 14:47
正则这东西 学一次忘一次

还好吧,用的多了就记住了。

看着语法挺复杂,其实没啥难度的

wudan6 发表于 2022-8-23 15:25

这个适用于所有语言吗

406094055 发表于 2022-8-23 15:33

xiaoran1431 发表于 2022-8-23 14:31
正则表达式 我永远的痛

+1 正则表达式 我永远的痛:'(weeqw

川奈. 发表于 2022-8-23 15:39

stitch007 发表于 2022-8-23 14:47
正则这东西 学一次忘一次

多用,常用就不会忘了
页: [1] 2
查看完整版本: 正则表达式入门