正则表达式文本和标签之间的一些标签

时间:2015-07-12 04:04:10

标签: php html regex tags

我有正则表达式标记html的问题。任何人请帮助我! 谢谢这是我的一些情况......我有搜索和思考,但没有去做。

案例1

const char sequence[] PROGMEM = {
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
...
"0F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF00F0F0FF0"
};

案例2

// 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

案例3

// 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

1 个答案:

答案 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:在

中包含IMG标签的A标签
相关问题