<(\S*?)[^>]*>.*?</\1>|<.*? />这个正则表达式该如何解释?

前端之家收集整理的这篇文章主要介绍了<(\S*?)[^>]*>.*?</\1>|<.*? />这个正则表达式该如何解释?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
正则是用来匹配一串字符串的
< 不变,就是<
\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>

猜你在找的正则表达式相关文章