正则表达式(regular Expression)(一)

本文介绍正则表达式的概念及其在文本处理中的应用,涵盖基本语法、量词、字符集等内容,并推荐了用于练习的工具软件RegexBuddy4。

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

    最近在学习一些正则表达式的基本知识,通过这篇博客进行简单的复习回顾与巩固。

为什么要用正则表达式?

    进行复杂的文本处理。

    优势用途:

1、强大而灵活的文本处理工具

2、大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。

开发中使用正则表达式的流程:

         1、分析所要匹配的数据、写出测试用的典型数据。

         2、在工具软件中进行匹配测试

         3、在程序调试中同错测试的正则表达式。

在这里我推荐正则软件:RegexBuddy 4。可以直接下载绿色版。

语法:

1、普通字符匹配与之相同的一个字符。
2、标准字符集合:能够与多种字符匹配的表达式(注意区分大小写,大写是相反的意思,即满足不同自负的都可以)。

         \d               任意一个数字

         \w              任意一个字母或者下划线、也就是A-Za-z0-9,‘_’中的任意一个

         \s             包括空格、制表符、换行符等空白字符的其中任意一个。

.                 小数点可以匹配任意一个字符,如果要匹配包括“\n”在内的所有字符,一般用【\s\S】。

3、自定义字符集合:

         [^369]除了369任意字符

         [abc@]abc或者@

         [2-8] 2-8中间的任意字符

[^a-f0-8]除了a-f0-8之间的任意字符。

 

         注意事项:特殊字符在[]则失去特殊意义。

4、量词

         {n}           表示重复 n

         {n,m}         表示出现 n – m 次,并且是贪婪模式

         {n,}            至少有n次,没有上限

         ?                代表0-1      \d?

         `+             表示至少一次

*                不出现或者出现任意次。

5字符边界

零宽度。

^ 与字符串开始的地方开始匹配

$与字符串结束的地方开始匹配。

\b匹配一个单词边界。表示左右两侧相邻的不全是\w表示。

6、匹配模式:单行模式、多行模式、大小写区分模式

    在一个括号包住的位置即为一次匹配模式,匹配模式后可以添加量词代表重复次数。

6、选择符和分组

分支结构:或的意思,匹配左边或者右边。a|b 满足a或者满足b的。

()捕获组:       1、在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰。

                            2、取匹配结果的时候

                            3、反向引用前面的捕获组。

([a-z]{2})\1 在匹配的字符再匹配一次

(?:expression )非捕获组。

(?:[a-z]{2}) 不会进行继续捕获。

8、预搜索(零宽断语言)

只进行子表达式的匹配,匹配内容不计入最终的匹配结果。

(? = exp)断言自身出现的额位置的后面能匹配表达式exp

(?<=exo)断言自身出现的位置的前面能匹配表达式(exp)

(?!exp)断言自身出现的位置的后面不能匹配表达式exp

9、国内常用的正则表达式列表
可以在网上查找:


10、贪婪(在没有设置时用的是贪婪模式)

         \d{3,6}表示匹配3-6个数字。系统默认的是贪婪模式。

11、非贪婪模式

         \d{3,6}?;量词后面跟一个?表示非贪婪模式。


  JAVA中如何使用正则:



更详细的用法在以后会补充进来。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值