1

そのようなログファイルに文字列があります:

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

'AUR and /ROLE="" 一定の部分です

HALAA and VR_ANALYST入力です

私の正規表現は次のとおりです。"^'AUR (\\w+) .*? /ROLE=\"(\\w+)\".*$";

しかし、正しく動作しません。この文の正しい正規表現を教えてください。

4

2 に答える 2

2

後に複数のスペースがあるよう'AURです-正規表現もそれに一致させる必要があります:

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

文字列 (ログファイルからの場合) の末尾に改行が含まれている可能性が高く、はそれに一致しないため.find()、 ではなく メソッドを使用する必要があります。さらに、その場合、アンカーは不要です。だから、これを試してください:matches().*

Pattern regex = Pattern.compile("^'AUR +(\\w+) .*? /ROLE=\"(\\w+)\".*$");
Matcher regexMatcher = regex.matcher(strLine);
if (regexMatcher.find()) {
    first = regexMatcher.group(1);
    second = regexMatcher.group(2); 
} 
于 2013-10-21T12:53:29.380 に答える
0

これを試して ..

^'AUR\s*\w*.*/ROLE="\w*".*
于 2013-10-21T13:04:34.977 に答える