正则表达式精确匹配?正则表达式应用场景
大家好,正则表达式精确匹配相信很多的网友都不是很明白,包括正则表达式应用场景也是一样,不过没有关系,接下来就来为大家分享关于正则表达式精确匹配和正则表达式应用场景的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
如何使用正则表达式匹配精确匹配正整数和小数点后一位小数
要使用正则表达式精确匹配正整数和小数点后一位小数,可以使用以下正则表达式:
^[1-9]d*.d$|^0.d$|^[1-9]d*$正则表达式解析:^[1-9]d*.d$
^表示字符串的开始。
[1-9]确保整数部分大于 0(避免以 0开头的无效数字)。
d*匹配任意数量的数字(0个或多个)。
.匹配小数点。
d$确保小数点后只有一位数字,且字符串以此结束。
示例匹配:123.4、5.0。
^0.d$
^0匹配以 0开头的数字。
.匹配小数点。
d$确保小数点后只有一位数字(且不能为 0,否则是无效输入)。
示例匹配:0.5,但会排除 0.0(若需允许 0.0,可改为 ^0.d?$)。
^[1-9]d*$
^表示字符串的开始。
[1-9]确保整数部分大于 0。
d*匹配任意数量的数字(0个或多个)。
$表示字符串的结束。
示例匹配:123、5。
完整正则表达式:将三部分用|(逻辑或)连接,表示匹配其中任意一种情况:
^[1-9]d*.d$|^0.d$|^[1-9]d*$使用示例(Python):import repattern= r'^[1-9]d*.d$|^0.d$|^[1-9]d*$'test_cases= ["123","0.5","5.0","0.0","123.45","-1","abc"]for num in test_cases: if re.fullmatch(pattern, num): print(f"'{num}'是有效输入") else: print(f"'{num}'是无效输入")输出结果:'123'是有效输入'0.5'是有效输入'5.0'是有效输入'0.0'是无效输入(若需允许,需调整正则)'123.45'是无效输入'-1'是无效输入'abc'是无效输入注意事项:排除 0.0:当前正则不匹配 0.0,若需允许,将 ^0.d$改为 ^0.d?$。排除前导零:如 0123会被拒绝(符合正整数规范)。严格匹配:使用 ^和$确保整个字符串符合格式,避免部分匹配(如 123abc被误判)。调整后的正则(允许 0.0):^[1-9]d*.d$|^0.d?$|^[1-9]d*$
正则表达式
正则经常用于js判断手机号,邮箱等,通过简单的办法来实现强大的功能
符号解释
字符描述
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,'n'匹配字符"n"。'\n'匹配一个换行符。序列'\\'匹配"\"而"\("则匹配"("。
^匹配输入字符串的开始位置。如果设置了 RegExp对象的 Multiline属性,^也匹配'\n'或'\r'之后的位置。
$匹配输入字符串的结束位置。如果设置了RegExp对象的 Multiline属性,$也匹配'\n'或'\r'之前的位置。
*匹配前面的子表达式零次或多次。例如,zo*能匹配"z"以及"zoo"。*等价于{0,}。
+匹配前面的子表达式一次或多次。例如,'zo+'能匹配"zo"以及"zoo",但不能匹配"z"。+等价于{1,}。
?匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配"do"或"does"中的"do"。?等价于{0,1}。
{n} n是一个非负整数。匹配确定的 n次。例如,'o{2}'不能匹配"Bob"中的'o',但是能匹配"food"中的两个 o。
{n,} n是一个非负整数。至少匹配n次。例如,'o{2,}'不能匹配"Bob"中的'o',但能匹配"foooood"中的所有 o。'o{1,}'等价于'o+'。'o{0,}'则等价于'o*'。
{n,m} m和 n均为非负整数,其中n<= m。最少匹配 n次且最多匹配 m次。例如,"o{1,3}"将匹配"fooooood"中的前三个 o。'o{0,1}'等价于'o?'。请注意在逗号和两个数之间不能有空格。
?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串"oooo",'o+?'将匹配单个"o",而'o+'将匹配所有'o'。
.匹配除"\n"之外的任何单个字符。要匹配包括'\n'在内的任何字符,请使用象'[.\n]'的模式。
x|y匹配 x或 y。例如,'z|food'能匹配"z"或"food"。'(z|f)ood'则匹配"zood"或"food"。
[xyz]字符集合。匹配所包含的任意一个字符。例如,'[abc]'可以匹配"plain"中的'a'。
[^xyz]负值字符集合。匹配未包含的任意字符。例如,'[^abc]'可以匹配"plain"中的'p'。
[a-z]字符范围。匹配指定范围内的任意字符。例如,'[a-z]'可以匹配'a'到'z'范围内的任意小写字母字符。
[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]'可以匹配任何不在'a'到'z'范围内的任意字符。
\d匹配一个数字字符。等价于 [0-9]。
\D匹配一个非数字字符。等价于 [^0-9]。
\f匹配一个换页符。等价于\x0c和\cL。
\n匹配一个换行符。等价于\x0a和\cJ。
\r匹配一个回车符。等价于\x0d和\cM。
\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]。
\S匹配任何非空白字符。等价于 [^\f\n\r\t\v]。
\t匹配一个制表符。等价于\x09和\cI。
\v匹配一个垂直制表符。等价于\x0b和\cK。
\w匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W匹配任何非单词字符。等价于'[^A-Za-z0-9_]'。
具体怎么使用还得多看例子,对照解释
如何使用正则表达式
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]表示一个字符集,匹配括号中字符的其中之一。
正则表达式精确匹配的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于正则表达式应用场景、正则表达式精确匹配的信息别忘了在本站进行查找哦。