库根据规则解析字符串内容

时间:2013-09-11 21:04:59

标签: java html string-formatting

我想在自定义Jackson JsonSerialize实现中添加自定义逻辑/类,以便根据某些规则解析html。例如,如果html包含在单引号'<b>'text'</b>'中,那么自定义逻辑应该按原样接受字符串。如果它不是单引号,如<b>text</b>那么我希望自定义逻辑/类只返回文本。另外,如果我有一个用三个单引号'''<html><head><title>example</title></head></html>'''括起来的html块,它应该按原样接受,但如果它不是那么只应返回示例文本并解析其他所有内容。什么是最好的Java库来实现这一目标?我想过使用AnitSamy,但这让我对XSS攻击持开放态度,因为我需要接受引号内的任何内容。

示例:

input:<b>text</b>
output:text

input:'<b>'text'</b>'
output:'<b>'text'</b>'

input:<html><head><title>text</title></head></html>
output:text

input:'''<html><head><title>text</title></head></html>'''
output:'''<html><head><title>text</title></head></html>'''

1 个答案:

答案 0 :(得分:1)

您可以使用Java Regex引擎查找模式。例如:

p = Pattern.compile("'''[\\w*]'''");
m = p.matcher(input);
if(m.find()){
    //Do some logic
}

这是Java Regex网站的链接: http://www.regular-expressions.info/java.html