大家帮忙分析下这个正则表达式 ^{(.+?)}$ ,其中的'?'有作用吗?

能不能帮我我解释一下,这个正则表达式什么意思,(^|>)([^<]+)(?=<|$)。~

最后一个括号表示的是匹配在当前位置后面的字符是小于号或者就是已经是结尾了

根据你的要做自己写了一个,写的有点啰嗦,不过感觉应该能满足你的要求,下面是正则式和测试数据import java.util.regex.Matcher;import java.util.regex.Pattern;public class A { public static void main(String[] args){ //测试数据 String s1 = "12sddf"; String s2 = "+12345"; String s3 = "----1234"; String s4 = "----1234.0012"; String s5 = "-1234.0012.0112"; String s6 = "-1234.00120112"; String s7 = "+1234.00120112"; String s8 = "-01234.00120112"; String s9 = "-1234."; String s10 = "+1234."; String s11 = "+0."; String s12 = "-0."; String s13 = "0.12231321s"; String s14 = "0.12231321"; String s15 = "-0.12231321"; String s16 = "1234"; String s17 = "-1234"; String s18 = "-01234"; String s19 = "+01234"; //最后验证所有的数 Pattern p4 = Pattern.compile("^\\-{0,1}+[1-9]{1}+[0-9]{0,}$|^\\-{0,1}+0{1}+\\.{1}+[0-9]{1,}$|^\\-{0,1}+[1-9]{1}+[0-9]{0,}+\\.{1}+[0-9]{1,}$"); System.out.println(s1+":"+(p4.matcher(s1).find()?"合法的数字":"非法的数字")); System.out.println(s2+":"+(p4.matcher(s2).find()?"合法的数字":"非法的数字")); System.out.println(s3+":"+(p4.matcher(s3).find()?"合法的数字":"非法的数字")); System.out.println(s4+":"+(p4.matcher(s4).find()?"合法的数字":"非法的数字")); System.out.println(s5+":"+(p4.matcher(s5).find()?"合法的数字":"非法的数字")); System.out.println(s6+":"+(p4.matcher(s6).find()?"合法的数字":"非法的数字")); System.out.println(s7+":"+(p4.matcher(s7).find()?"合法的数字":"非法的数字")); System.out.println(s8+":"+(p4.matcher(s8).find()?"合法的数字":"非法的数字")); System.out.println(s9+":"+(p4.matcher(s9).find()?"合法的数字":"非法的数字")); System.out.println(s10+":"+(p4.matcher(s10).find()?"合法的数字":"非法的数字")); System.out.println(s11+":"+(p4.matcher(s11).find()?"合法的数字":"非法的数字")); System.out.println(s12+":"+(p4.matcher(s12).find()?"合法的数字":"非法的数字")); System.out.println(s13+":"+(p4.matcher(s13).find()?"合法的数字":"非法的数字")); System.out.println(s14+":"+(p4.matcher(s14).find()?"合法的数字":"非法的数字")); System.out.println(s15+":"+(p4.matcher(s15).find()?"合法的数字":"非法的数字")); System.out.println(s16+":"+(p4.matcher(s16).find()?"合法的数字":"非法的数字")); System.out.println(s17+":"+(p4.matcher(s17).find()?"合法的数字":"非法的数字")); System.out.println(s18+":"+(p4.matcher(s18).find()?"合法的数字":"非法的数字")); System.out.println(s19+":"+(p4.matcher(s19).find()?"合法的数字":"非法的数字")); }}打印结果12sddf:非法的数字+12345:非法的数字----1234:非法的数字----1234.0012:非法的数字-1234.0012.0112:非法的数字-1234.00120112:合法的数字+1234.00120112:非法的数字-01234.00120112:非法的数字-1234.:非法的数字+1234.:非法的数字+0.:非法的数字-0.:非法的数字0.12231321s:非法的数字0.12231321:合法的数字-0.12231321:合法的数字1234:合法的数字-1234:合法的数字-01234:非法的数字+01234:非法的数字

在正常模式下(未使用U参数反转贪婪且为多行模式)

这个表达式会比不用?的式子少进行一次匹配,所以说有作用的,通常情况都推荐使用非贪婪模式,更有效率,避免不必要的回溯

这是正则表达式中的非贪婪模式啊,你百度一下,“正则表达式非贪婪模式”,应该就能明白。

? 表示非贪婪匹配,即 +? 表示重复1次或更多次,但尽可能少重复。

请帮我解释下这个正则表达式 /([0-9]\.?[0-9]*[a-zA-Z]+|[a-zA-Z...
答:/ #正则表达式开始 ( #捕获括号 [0-9] #第一个字符是一个数字 \.? #第二个字符是点或者不是 [0-9]* #0个或N个数字 [a-zA-Z]+ #一个或多个大写或小写字母 | #或者 [a-zA-Z]* #0个或N个大写或小写字母 [0-9]+ #1个或N个数字 | #或者 [0...

有没有人能够解释下这个正则表达式是什么意思: /^-?(?:\d+|\d{1,3...
答:\d+ #匹配任意位的数字 | #表示‘或’关系 \d{1,3} #匹配1-3位数字 (?:,\d{3})+ #匹配一个逗号加一个3位数字,+号表示可以重复多个 (?:\.\d+)? #匹配一个小数点和多位数字 匹配结尾 综合起来,这个正则表达式用于匹配数字 可以是整数,也可以是小数 12345和12345.67...

...帮忙讲解下^[^\-][^\-]*-[^\-][^\-]*$正则表达是什么意思
答:此例中的[^\-]表示一个不是'-'的字符,因为'-'在方括号中有表示范围的意思,所以前面加了'\'来转义成一个普通字符'-',(但在此处转义符'\'多余:此例中'-'明显不是表示范围,作者低估了正则引擎的理解能力)全表达式意思是:字符串开头是一个不为'-'的字符,后面跟0个到多个不为'-'的字符,再...

求分析一下这个正则表达式:[%\\+\\-\\*/\r\n\t \\[\\].;(){},]是在...
答:一步一步分析吧,首先你得明白,因为在字符串中 '\'需要用\\来表示(如果不明白,请查:转义字符)\\ => \ \\+ = \+,\\- = \- ,\\* = \*,\\[ = \[,\\] = \],代入得 [%+*\r\n\t[].;(){},]\r\n\t 代表,空白字符,换行符,制表符 [] : 的意思是...

谁能帮我解释一下这个正则表达式的意思/^[1-9]\d*(\.[0-9]+)?$|^0...
答:0-9])\。[0-9]+匹配小数点和从0到9的数字一次或多次,()为分组系统 吗?它将是0或1 (\[0-9]+)?也就是说,有或没有小数点的数字都可以匹配。美元比赛结束 |方法或 ^0$是匹配的数字0,没有其他字符。在/gi之后,g表示全局匹配,I表示忽略大小写。

谁能帮我解释一下这个正则表达式的意思/^[1-9]\d*(\.[0-9]+)?$|^0...
答:0-9])\。[0-9]+匹配小数点和从0到9的数字一次或多次,()为分组系统 吗?它将是0或1 (\[0-9]+)?也就是说,有或没有小数点的数字都可以匹配。美元比赛结束 |方法或 ^0$是匹配的数字0,没有其他字符。在/gi之后,g表示全局匹配,I表示忽略大小写。

大家帮忙分析下这个正则表达式 ^{(.+?)}$ ,其中的'?'有作用吗?_百度知 ...
答:在正常模式下(未使用U参数反转贪婪且为多行模式)这个表达式会比不用?的式子少进行一次匹配,所以说有作用的,通常情况都推荐使用非贪婪模式,更有效率,避免不必要的回溯

大神帮解释一下正则表达式@"(?<=找到相关结果[约]?)[0-9,]*?(?=个...
答:=个)是一个零宽度的正前向断言,它只向前搜索判断是否有匹配 个 的字符串,但是同样不输出该字符串.[0-9,]*? 表示0到9和逗号的0个或多个的非贪婪匹配,它匹配类似 1,000 或者 350 这样的字符串,它输出该字符串. 所以最后该正则表达式输出 1,000 或者 350 这样的字符串总之,正则表达式@"(?<...

帮忙解释一下这个正则表达式 /]*?loc=[^>]*>[\s\S]*?<\/li>/i_百度...
答:这段正则可以分步来看。从你用/……/的形式可以看出你用的是javascript的正则,而不是C#或者其他语言的正则。1./……/i 表示两个斜杠之间的内容不区分大小写。2. 这段正则是以<li开头, 结束的,这里为了防止错误匹配,防止与最外层的两个斜杠冲突,所以写成了<\/li> 3.[^>]*?loc= 表示非大...

正则表达式的一些问题,帮忙分析下
答:$/ 两边的斜杠是某些编程语言用来标记正则表达式的符号,并不是正则正则表达式的一部分 这个正则中间是[1-9][0-9]?匹配1-2位数字,但第一位不能为0,中间这部分不能匹配数字0,也不能匹配01,所以这个正则中最开始的数字0是有用的,匹配数字0 这个正则匹配1-2位不以0开头的数字或者0或者100 ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网