我有一个源代码文件,我试图在java中使用自动Regex处理器类读取。
虽然如果在行中多次出现,我无法形成正确的正则表达式模式来获取值。
输入文字为:
<input name="id" type="radio" bgcolor="<bean:write name='color'/>" value="<bean:write name='nameProp' property='nameVal'/>" <logic:equal name="checkedStatus" value="0">checked</logic:equal>>
我希望matcher.find输出以下术语:
<bean:write name='color'/>
<bean:write name='nameProp' property='nameVal'/>
请帮助形成此场景的正则表达式模式。
答案 0 :(得分:0)
使用此正则表达式查找这些术语:
<bean:write[^\/]*\/>
它将搜索单词<bean:write
,然后搜索所有内容,直到/>
像这样使用:
List<String> matches = new ArrayList<>();
Matcher m = Pattern.compile("<bean:write[^\\/]*\\/>")
.matcher(inputText);
while (m.find()) {
matches.add(m.group());
}
我提醒您使用正则表达式解析HTML。如果你需要比这更复杂的东西,你应该考虑使用XML解析器。见this famous answer.