正则表达式匹配结束标记之前的缺失期间(。)

时间:2013-03-20 08:46:42

标签: regex

如何使用正则表达式匹配结束标记之前的缺失期(。)?

为了使自己清楚,这是一个样本:

样品需要匹配:

1. text</… ></tag> ---> Where </...> is any tag and can be multiple end tags

2. text</tag>  

更正不需要匹配的样本:

1. text.</...></tag>
2. text.</tag>

我想忽略这样的事情:

,</tag>   --> Where , can be any punctuation except period (.)

,</...></tag>

我希望有人可以帮助我,谢谢!

3 个答案:

答案 0 :(得分:1)

只需使用[^\.]即可。这将匹配.以外的任何内容 在您的情况下,您需要使用[^\.>]</

答案 1 :(得分:0)

[,;:]将匹配除期间之外的任何标点符号。随意延伸(因为我不确定你是否想要像撇号,引号,斜线等字符。)

您也可以使用[^,;:]来否定这一点,其中^代表字符集中的NOT。

请参阅this以供参考。

答案 2 :(得分:0)

这就是我对我的问题所做的:

([^.:;(or)(and)\!\)()>])(\</.*?\>)\</tag\>

这将匹配结束前没有句点(。)的文本:

text</otherEndTag>...</tag>

但标点符号列表将被忽略:

: ; ! ) ( > , or , and