我在java中输入了一个完整的html文件作为字符串(我也有文件)。文字如下所示
Sample input
Some text........... <s:message code="code1" arguments="${arg1,arg2}" />..
some text ........
some text ....... <s:message code="code2"
/>...........
基本上我需要根据代码类型替换所有文本。例如,如果代码是code1,则用test1
替换s:message标记sample output
Some text........... test1..
some text ........
some text ....... test2 ...........
我没有得到如何捕获完整的<s:message >
然后用其他文本替换它?看起来我需要在这里使用正则表达式但是
没有得到如何开始?
更新: -
code1和test1只是示例,它们可以是任何值。 code1可以是xyz,可以用abc替换。这就是为什么我想要捕获所有消息标签(在遍历或一次性过程中逐个捕获),然后获取代码,执行一些逻辑并查看替换值。
方法2: - 还有另外一种方法,我有数据结构中的代码列表,每个代码检查是否有任何封闭的消息标记,捕获它然后处理它。
答案 0 :(得分:0)
它似乎是XML,您最好使用解析器来查找节点并将其替换为您想要的文本。使用正则表达式执行此操作非常简单(特别是当您的条件上升时)。但这是针对这个特定问题的解决方案:
String regex = '<s:message\\b[^>]*?"code(\\d+)"[^>]*>';
并将匹配替换为test$1
:
string = string.replaceAll(regex, "test$1");