<(\S*?)[^>]*>.*?</\1>|<.*? />这个正则表达式该如何解释?
发布网友
发布时间:2023-07-06 01:38
我来回答
共3个回答
热心网友
时间:2023-07-17 22:08
正则是用来匹配一串字符串的
< 不变,就是<
\S 非空白符
* 重复任意次
? 懒人原则,如果有多种匹配,取最短的那种
[^>]* 取任意次不是“>”的其它任意字符
> 就是>,不变
.*? 除换行符外任意字符(.)匹配任意次(*),但是是懒人原则(?)
</\1> 其它都是按原样匹配,只有\1代表第一个括号中捕获的内容,即\S*?
所匹配的内容
| 或,"|"两边有任一匹配就可以,先匹配左边表达式,没有再匹配右边
<.*?/> 其它都是按原样匹配,.*?上面有
这段表达式的本意是想查找类似
<标签>内容</标签>
格式的文本,但是有差错。这个格式我没学过但看到过,好像是类似XML格式语言,不是XML别怪我,不过就是这样的格式没错。但是你的这个表达式我用来匹配了一下文本,以下是我做的3次匹配
文本:cy_nobuda<cy >aaa</cy>
结果是:<cy >aaa</cy>
文本:cy_nobuda<cy >aaa<bbb/>
结果是:<cy >aaa<bbb/>
文本:cy_<dslj;fds/>
结果是:<dslj;fds/>
很乱,根据"<标签>内容</标签>"这个格式,我改了一点点点点点点
<(\S*?)>.*?</\1>
上面3个文本结果是没有,
文本改为cy_nobuda<cy>aaa</cy>
匹配结果就是:<cy>aaa</cy>
呵呵~~~正则表达式我也因为跟老师做项目用到才看的,也就几个礼拜,照理说答的是没设么错误的,有错别怪我
热心网友
时间:2023-07-17 22:08
?是表示有或者没有都可能出现的情况
.*能匹配所有内容,但不包含内容为空的情况,加个?就能匹配到空的内容
这个表示式是获取XHTML的元素,诸如
<td>内容</td>
<div></div>
<br />
热心网友
时间:2023-07-17 22:09
谁发给你的?