我有一个像
这样的字符串1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===
我只想要
AUTH: ExternalFundingAnalysisStage was successful (rc:0)
使用正则表达式。请帮我解决这个问题。
提前致谢
答案 0 :(得分:2)
由于您未指定使用正则表达式的语言,因此任何语言都可能是有效的响应。因此,在Perl中,您可以使用替换:
s/.*=== (.*) ===.*/$1/;
或匹配:
m/=== (.*) ===/;
比赛结束后,$1
将包含您要查找的字符串。
替换中的第二个.*
之后的===
对于输入的采样行是不必要的,但是在正则表达式的开头与.*
对称,并且对称性令人满意。它保护替代命令免受拖尾碎片的影响;比赛不需要保护。
答案 1 :(得分:2)
使用PHP:
$var = "1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===";
$var = preg_replace("@.*===([^=]+)===.*@i",$1,$var);
答案 2 :(得分:0)
如果它总是沿着相同的行(从AUTH开始,以(rc:#)结尾):
//JavaScript
var str = "1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===";
str = str.slice(str.indexOf("AUTH"), str.lastIndexOf(")")+1);
或使用正则表达式:
str = str.replace(/^.+={3}\s(.+)\s={3}$/,"$1");
答案 3 :(得分:0)
为此您还使用java regex进行详细信息,请遵循此Tutorial,在您的情况下,您也可以使用子字符串。
像:
String str ="1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===";
String str1=str.subString(58,106);
Stirng str2=str.replace("(","");
然后你得到了你所需要的答案