regex用法(如何使用正则表达式)

:暂无数据 2026-09-21 11:30:02 :0

regex用法(如何使用正则表达式)

这篇文章给大家聊聊关于regex用法,以及如何使用正则表达式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

如何使用正则表达式

QTP使用正则表达式有2种方式,一种是在“常量值选项”对话框或“参数选项”对话框的“值”框中输入字符串的正则表达式语法,可以定义正则表达式。选中“正则表达式”复选框,以指示QuickTest将该值作为正则表达式处理。
另一种是使用描述性编程,所有编程描述属性值都均自动作为正则表达式处理。注意:您可以只将正则表达式应用于字符串类型的值。
默认情况下,除了句点(.)、连字符(-)、星号(*)、插字号(^)、方括号([ ])、圆括号(())、货币符号($)、垂直线(|)、加号(+)、问号(?)和反斜杠(\)以外,QuickTest将正则表达式中的所有字符作为文字处理。当一个特殊字符前面带有反斜杠(\)时,QuickTest将其作为文字字符处理。
如果在“常量值选项”或“参数选项”对话框的“值”框中输入一个特殊字符,QuickTest会询问您是否要在每个特殊字符前面添加一个反斜杠(\)。如果单击“是”,则相应的特殊字符前面就会加上一个反斜杠(\),以指示QuickTest将该字符作为文字处理。如果单击“否”,QuickTest将该特殊字符作为正则表达式字符处理。
本节描述某些更常用的选项,可用于创建正则表达式:
• 使用反斜杠字符( \ )
• 匹配任意单个字符( . )
• 匹配列表中的任意单个字符( [xy] )
• 匹配不在列表中的任意单个字符( [^xy] )
• 匹配某个范围内的任意单个字符( [x-y] )
• 特定字符的零次或多次匹配( * )
• 特定字符的一次或多次匹配( + )
• 特定字符的零次或一次匹配( ? )
• 对正则表达式进行分组( ( ) )
• 匹配几个正则表达式中的一个表达式( | )
• 在一行的开始进行匹配( ^ )
• 在一行的结尾进行匹配( $ )
• 匹配包括下划线在内的任一字母数字字符( \w )
• 匹配任意非字母数字字符( \W )
• 组合正则表达式操作符
正则表达式的语法规则和标记
字符描述:

^符号匹配字符串的开头。例如:
^abc 与“abc xyz”匹配,而不与“xyz abc”匹配

$符号匹配字符串的结尾。例如:
abc$ 与“xyz abc”匹配,而不与“abc xyz”匹配。
注意:如果同时使用^符号和$符号,将进行精确匹配。例如:
^abc$ 只与“abc”匹配   

*符号匹配0个或多个前面的字符。例如:
ab* 可以匹配“ab”、“abb”、“abbb”等

+符号匹配至少一个前面的字符。例如:
ab+ 可以匹配“abb”、“abbb”等,但不匹配“ab”。

?符号匹配0个或1个前面的字符。例如:
ab?c? 可以且只能匹配“abc”、“abbc”、“abcc”和“abbcc”

.符号匹配除换行符以外的任何字符。例如:
(.)+ 匹配除换行符以外的所有字符串
x|y匹配“x”或“y”。例如:
abc|xyz 可匹配“abc”或“xyz”,而“ab(c|x)yz”匹配“abcyz”和“abxyz”

{n}匹配恰好n次(n为非负整数)前面的字符。例如:
a{2} 可以匹配“aa“,但不匹配“a”

{n,}匹配至少n次(n为非负整数)前面的字符。例如:
a{3,} 匹配“aaa”、“aaaa”等,但不匹配“a”和“aa”。
注意:a{1,}等价于a+
a{0,}等价于a*

{m,n}匹配至少m个,至多n个前面的字符。例如:
a{1,3} 只匹配“a”、“aa”和“aaa”。
注意:a{0,1}等价于a?

[xyz]表示一个字符集,匹配括号中字符的其中之一。

新手boost:regex使用求教

boost是对STL的补充,regex是其中一个模块。各方法类别很多,本文记录常用方法。
引入头文件《boost/regex.hpp》
1. regex_match
regex reg(“\\d{3}“);
string str = “123“;
bool b = regex_match(str,reg);

2.regex_replace(string s, regex e, string t),把s中匹配了e的子串替换为t

regex reg(“(colo)(u)(r)“,boost::regex::icase|boost::regex::perl);
string s=“Colour,colour,color,colOurize“;
s=regex_replace(s,reg,“$1$3“);

t中的$n代表reg中的第n个括号里的内容,$3表示r,$1表示colo。上段代码表示把colour换成color,boost::regex::icase/boost::regex::perl是标志开关,表示忽略大小写。可以把需要的标志开关打开,不需要时默认关闭。
regex_replace不修改原字符串,而是生成一个新串返回。
3.erase_all_regex(string, regex),(boost::algorithm::erase_all_regex,in header 《boost/algorithm/string/regex.hpp》),删除满足regex的所有子串,它是在原串中直接修改
#include 《boost/algorithm/string/regex.hpp》
erase_all_regex(str, boost::regex(“[\n|\t|\r]“))
删除字符串str中的所有空格
4.split_regex(序列式容器, string, regex),(《boost/algorithm/string/regex.hpp》),分割符为regex格式,分割string,将结果存放在容器中
#include 《boost/algorithm/string/regex.hpp》
vector《string》 fields;
split_regex( fields, str, boost::regex(“[\\*|X]“));
如果str = “5*6“,fields中存放的是5和6。str不会被修改。
5.split(序列式容器,string,Predicate), (《boost/algorithm/string/split.hpp》)。
#include 《boost/algorithm/string/split.hpp》
#include 《boost/algorithm/string/classification.hpp》
vector《string》 result;
split(result, school_code, is_any_of(“;“));
is_any_of,用于判断school_code中是否包含“;“,以;分割school_code存放在result中,不修改原串。

正则表达式“或“的使用

正则表达式,又称规则表达式。是计算机科学的一个概念。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。


扩展资料

正则表达式的作用:

1、匹配

检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:

String str=“abc“;

String reg=“[a-zA-Z]\\d?“;//次表达式表示字符串的第一位只能是字母,第二位只能是数字或没有boolean flag=str.matches(reg);//返回结果为true。

2、切割

所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:

String str=“zhangsan,lishi,wangwu“。

String reg=“,“;//表示以逗号作为切割符。

String arr=str.split(reg);//返回结果为{“zhangsan”,“lisi“,“wangwu}。

3、替换

即将字符串中符合规则的字符替换成指定字符,如:

String str=“sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376“。

str.replaceAll(“\\d{3,}“,“#“);//表示将连续出现三个或三个以上的数字替换成“#”。

参考资料来源:百度百科-正则表达式

关于regex用法,如何使用正则表达式的介绍到此结束,希望对大家有所帮助。

regex用法(如何使用正则表达式)

本文编辑:admin

更多文章:


promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

微信xlsx文件怎么打开(苹果手机微信打开excel)

微信xlsx文件怎么打开(苹果手机微信打开excel)

大家好,关于微信xlsx文件怎么打开很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于苹果手机微信打开excel的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 01:10

reduce用法和短语(减少的英文短语有哪些)

reduce用法和短语(减少的英文短语有哪些)

其实reduce用法和短语的问题并不复杂,但是又很多的朋友都不太了解减少的英文短语有哪些,因此呢,今天小编就来为大家分享reduce用法和短语的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 00:40

最近更新

promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表