[英]Capture html tag with attributes and values?
我在java中有完整的html文件输入为字符串(我也有文件)。 文字如下所示
Sample input
Some text........... <s:message code="code1" arguments="${arg1,arg2}" />..
some text ........
some text ....... <s:message code="code2"
/>...........
基本上我需要根据代码类型替换所有文本。 例如,如果代码是code1,则将s:message标记替换为test1
sample output
Some text........... test1..
some text ........
some text ....... test2 ...........
我没有得到如何捕获完整的<s:message >
,然后将其替换为其他一些文本的方法? 看起来我需要在这里使用正则表达式,但不知道如何开始?
更新:-
code1和test1只是示例,它们可以是任何值。 code1可以是xyz,可以由abc代替。 这就是为什么我要捕获所有消息标签(遍历或一次一遍地捕获),然后获取代码,执行一些逻辑,然后看一下替换值是什么。
方法2:-还有另一种方法可以执行,我有数据结构中的代码列表,对于每个代码,请检查是否有任何封闭的消息标签中的内容,将其捕获然后进行处理。
它似乎是XML,您最好使用解析器找到该节点并将其替换为所需的文本。 使用正则表达式执行此操作很成败(特别是当您的条件上升时)。 但是,这是针对此特定问题的解决方案:
String regex = '<s:message\\b[^>]*?"code(\\d+)"[^>]*>';
并将match替换为test$1
:
string = string.replaceAll(regex, "test$1");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.