我有正则表达式标记html的问题。任何人请帮助我! 谢谢这是我的一些情况......我有搜索和思考,但没有去做。
const char sequence[] PROGMEM = {
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
...
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
};
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua<p>
// Out Put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
// Out put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit
答案 0 :(得分:1)
我猜这样的事情就是你所追求的(例如javascript)。
function checkParagraph(str)
{
var result = str.match(/^<p>([^<].*[^>])<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
有关仅允许BR,IMG,A和IMG-inside-A标签的附加信息,正则表达式完全不同:
function checkParagraph(str)
{
var result = str.match(/^<p>(([^<>]+|<br\/>|<img[^>]+>|<a[^>]+>[^<>]*<\/a>|<a[^>]+><img[^>]+><\/a>)*)<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("Lorem ipsum magna aliqua"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <a href=\"#\">magna</a> aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <img src=\"img.jpg\"/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
alert(checkParagraph("<p><span>magna</span> aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><span>magna</span> aliqua</a></p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/><span>magna</span> aliqua</a></p>"));
正则表达式的细分:
/.../i
- &gt;大写和小写标签不区分大小写
^<p>...<\/p>$
- &gt;输入包含在P标签中
(...)
- &gt;括号内的捕获组将成为结果[1]
(...|...)*
- &gt;以下任意数量的选项:
[^<>]+
- &gt;选项1:任何没有标签的文本
<br\/>
- &gt;选项2:BR标签
<img[^>]+>
- &gt;选项3:IMG标签
<a[^>]+>[^<>]*<\/a>
- &gt;选项4:内部为文本的A标签
<a[^>]+><img[^>]+><\/a>
- &gt;选项5:在