java - java中有点令人困惑的正则表达式

标签 java regex

日志文件中有这样一个字符串:

'AUR   HALAA /PART="CMF1_SAS_PROJECT" /ROLE="VR_ANALYST" /TY=C /CAP=S /DEL' (S) 

'AUR 和/ROLE="" 是常量部分

HALAA 和 VR_ANALYST 是输入

我的正则表达式是:"^'AUR (\\w+).*?/ROLE=\"(\\w+)\".*$";

但它无法正常工作。有人可以告诉我这句话的正确正则表达式吗?

最佳答案

'AUR 之后似乎有多个空格 - 您也需要允许正则表达式与之匹配:

"^'AUR +(\\w+) .*? /ROLE=\"(\\w+)\".*$";

您应该使用 .find() 方法,而不是 matches(),因为您的字符串(如果来自日志文件)可能在末尾包含换行符,并且 .* 不会匹配。另外,在这种情况下就不需要 anchor 了。所以,试试这个:

Pattern regex = Pattern.compile("^'AUR +(\\w+) .*? /ROLE=\"(\\w+)\".*$");
Matcher regexMatcher = regex.matcher(strLine);
if (regexMatcher.find()) {
    first = regexMatcher.group(1);
    second = regexMatcher.group(2); 
} 

关于java - java中有点令人困惑的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495000/

相关文章:

java - 使用 JNA 的函数 scanf

regex - VIM - 如何粘贴没有特殊字符的搜索寄存器?

java - 如何更好地重构可以在 java 中返回 null 的方法链?

java - MATLAB Engine API for Java 的问题

regex - kotlin String::replace 删除转义序列?

java - 如何将 Map<String,String> 更改为 Map<String,Ratio> ,比率为 x/y

python - 检查正则表达式时 PyCharm 解释反斜杠错误

javascript - 如何在表单提交时通过 jQuery 阻止西里尔文 unicode

java - 按钮大小 (Java)

java - 使用 rsa 公钥字符串(不是文件),当我加密时,出现错误 "invalid key format"