早教吧作业答案频道 -->英语-->
高手指点:请问这个正则表达式表示神马啊regex="|";我不只要结果,我要分析的过程,谢谢先分析我知道\是表转义,\w是任意一个字母或数字或下划线,.是除了换行符(\n)以外的任意一个字符,+
题目详情
高手指点:请问这个正则表达式表示神马啊regex="|";我不只要结果,我要分析的过程,谢谢
先分析
我知道\是表转义,\w是任意一个字母或数字或下划线,.是除了换行符(\n)以外的任意一个字符,+是表达式至少出现1次,?是匹配表达式0次或者1次
可是放在一起就不知道怎么看了,到底是什么意思啊,前辈指点.
先分析
我知道\是表转义,\w是任意一个字母或数字或下划线,.是除了换行符(\n)以外的任意一个字符,+是表达式至少出现1次,?是匹配表达式0次或者1次
可是放在一起就不知道怎么看了,到底是什么意思啊,前辈指点.
▼优质解答
答案和解析
+是指.能匹配的字符,出现至少一次.这里的?,你说错了.是取消贪婪算法的.+?可以认为“.”匹配上一次.
*?, +?, ?
The "*", "+", and "?" qualifiers are all greedy; they match as much text as possible. Sometimes this behaviour isn't desired; if the RE is matched against 'title', it will match the entire string, and not just ''. Adding "?" after the qualifier makes it perform the match in non-greedy or minimal fashion; as few characters as possible will be matched. Using .*? in the previous expression will match only ''.
还是看例子吧
>>> kk = re.match('(\w.+?)', 'hi all')
>>> kk.groups()
('hi',)
>>> kk = re.match('(\w.+)', 'hi all')
>>> kk.groups()
('hi all',)
>>>
可以认为\w匹配上h,.可以匹配h后面的字符,+是指.匹配到的数目至少是1个.对于没有?的情况,.+就会匹配h后所有的字符(至少一个,就是>1).有?的时候,就是取消贪婪算法(匹配尽量多),.+匹配上i之后,就不再进行后面的匹配.
所以结果分别是“hi”和“hi all”
*?, +?, ?
The "*", "+", and "?" qualifiers are all greedy; they match as much text as possible. Sometimes this behaviour isn't desired; if the RE is matched against 'title', it will match the entire string, and not just ''. Adding "?" after the qualifier makes it perform the match in non-greedy or minimal fashion; as few characters as possible will be matched. Using .*? in the previous expression will match only ''.
还是看例子吧
>>> kk = re.match('(\w.+?)', 'hi all')
>>> kk.groups()
('hi',)
>>> kk = re.match('(\w.+)', 'hi all')
>>> kk.groups()
('hi all',)
>>>
可以认为\w匹配上h,.可以匹配h后面的字符,+是指.匹配到的数目至少是1个.对于没有?的情况,.+就会匹配h后所有的字符(至少一个,就是>1).有?的时候,就是取消贪婪算法(匹配尽量多),.+匹配上i之后,就不再进行后面的匹配.
所以结果分别是“hi”和“hi all”
看了 高手指点:请问这个正则表达式...的网友还看了以下:
如果一个数与根号2相乘的结果是有理数,则这个数的一般形式是什么(用代数式表示).如果一个数与根号2 2020-04-08 …
英语中逗号隔开,后加动词形式,如果是主语动作就用ing,如果有被动含义就ed我一般这么简单的理解, 2020-05-14 …
后缀式ab+ cd+/可用表达式(23)表示,表达式(a+ b)*c的后缀式表示为(24)。A.a+ 2020-05-26 …
正方形ABCD边长为4,点E在边AB上(点E与点A,B不重合)过点A坐AE垂直于DE,垂足为G,AF 2020-11-03 …
(1)填表(2)如果设棱柱的顶点数为V,棱数为E,面数为F,请你猜想它们之间是否有关系式?如果有,请 2020-11-18 …
(1)填表(2)如果设棱柱的顶点数为V,棱数为E,面数为F,请你猜想它们之间是否有关系式?如果有,请 2020-11-18 …
图是一个加法竖式,其中E、F、I、N、O、R、S、T、X、Y表示0至9中的不同数字,且F、S不等于零 2020-12-05 …
如图,已知等腰三角形ABC的直角边AC=BC=a,等腰直角三角形BED的指教边BE=DE=b,且a小 2020-12-07 …
数据结构将下列各算术运算式表示成波兰式和逆波兰式:(A*(B+C)+D)*E-F*GA*(B-D)+ 2020-12-15 …
数据结构中条件赋值语句的意思书上说变量名=条件表达式?表达式T:表达式F;后面还有个题//用e返回指 2020-12-31 …