-5

我有一个字符串

1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===

我只想

AUTH: ExternalFundingAnalysisStage was successful (rc:0) 

使用正则表达式。请帮我解决问题。

提前致谢

4

4 回答 4

2

由于您没有指定使用正则表达式的语言,因此任何语言都可能是有效的响应。因此,在 Perl 中,您可以使用替换:

s/.*=== (.*) ===.*/$1/;

或比赛:

m/=== (.*) ===/;

匹配后,$1将包含您要查找的字符串。

替换中的.*第二个之后===的输入样本行是不必要的,但与.*正则表达式开头的 对称,对称性令人愉悦。它保护替代命令免受尾随碎片的影响;比赛不需要保护。

于 2013-06-25T05:09:06.303 回答
2

使用 PHP:

$var = "1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ===";
$var = preg_replace("@.*===([^=]+)===.*@i",$1,$var);
于 2013-06-25T05:12:35.207 回答
0

为此,您还可以使用 java regex 了解详细信息,请按照本教程进行操作,在您的情况下,您也可以使用 sub-string 。

喜欢:

String str ="1372110902.747405 29245 verbose [paymentserv]: === AUTH: ExternalFundingAnalysisStage was successful (rc:0) ==="; 

String str1=str.subString(58,106);
Stirng str2=str.replace("(","");

然后你得到你需要的答案

于 2013-06-25T07:02:47.617 回答
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");
于 2013-06-25T05:14:35.360 回答