繁体   English   中英

捕获具有属性和值的html标签?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM