java - 捕获字符串中的属性值?

标签 java regex string

我的文件内容是java中的字符串。我需要捕获属性代码的值,即 key.test.textkey.test.text1

 <input type="button" value="<s:message code="key.test.text"  />"
 <input type="button2" value='<s:message code="key.test.text1'  />"

= 之前可以有空格喜欢 <input type="button" value = "<s:message code="key.test.text" />"

我不确定如何使用正则表达式或字符串捕获它?

最佳答案

使用正则表达式模式

String regex = "value\\s*=\\s*[\"']<s:message\\s+code\\s*=\\s*[\"']([^\"']+)[\"']\\s*\\/>";

捕获组 #1 将为每个匹配返回所需的字符串。

<小时/>

Java代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String input = "...";
String regex = "value\\s*=\\s*[\"']<s:message\\s+code\\s*=\\s*[\"']([^\"']+)[\"']\\s*\\/>";

List<String> allMatches = new ArrayList<String>();
Matcher m = Pattern.compile(regex).matcher(input);

while (m.find()) {
  allMatches.add(m.group(1));
}

System.out.println(allMatches);

测试此演示代码 here .

关于java - 捕获字符串中的属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421967/

相关文章:

java - 调整列宽后垂直滚动条消失

java - 如何获取 block 中的变量 Try -Catch

java - 使用 EJB 的无状态工厂

asp.net - 正则表达式 [] 之间的任何内容

regex - MSBuild FileUpdate 目标的 ReplacementText 字符串中的双引号出现问题

python - 用否定替换条件(即使用 not)会导致 python re.sub 方法出错

javascript - 从javascript中的html字符串获取子字符串

java - 重构测试

c++ - 阅读字符串和 double

c++ - 无法识别 C++ 中的字符串数据类型