带有php的正则表达式websphere文件

带有php的正则表达式websphere文件,php,regex,websphere,Php,Regex,Websphere,我正在尝试为此类日志创建正则表达式: [9/23/11 11:09:53:632 CEST]0000005b FormLoginExte 3基于表单的登录:表单中存在用户名/密码。用户是:user1 我创造了这个: 预匹配(“/^[\d+/\d+/\d+\\d+:\d+:\d+:\d+\CEST]\\w{8}\\w+?\+\w+?\+.+?$,$line,$matches);//设置行的格式 并获取以下错误: [9/21/11 12:11:03:126 CEST]000000 4D FormLo

我正在尝试为此类日志创建正则表达式:

[9/23/11 11:09:53:632 CEST]0000005b FormLoginExte 3基于表单的登录:表单中存在用户名/密码。用户是:user1

我创造了这个:

预匹配(“/^[\d+/\d+/\d+\\d+:\d+:\d+:\d+\CEST]\\w{8}\\w+?\+\w+?\+.+?$,$line,$matches);//设置行的格式

并获取以下错误:

[9/21/11 12:11:03:126 CEST]000000 4D FormLoginExte 3基于表单的登录:表单中存在用户名/密码。用户是:user1
警告:preg_match()[function.preg match]:第79行C:\AppServ\www\logWebsphere\logwebpere.php中的未知修饰符“\”

正则表达式(preg_match)比运行简单的

<?php
$data = explode(" ","[9/23/11 11:09:53:632 CEST] 0000005b FormLoginExte 3 Form based login: userid/password present in the form. User is: user1");

//data now contains all the info that you need
var_dump($data);
?>

POC here:

正则表达式(preg_match)比运行简单的

<?php
$data = explode(" ","[9/23/11 11:09:53:632 CEST] 0000005b FormLoginExte 3 Form based login: userid/password present in the form. User is: user1");

//data now contains all the info that you need
var_dump($data);
?>


POC here:

您使用前斜杠作为delimeter,但在正则表达式中也包括未经前斜杠。你应该先在它们前面加两个反斜杠来逃避它们。需要两个反斜杠,因为反斜杠本身是元字符,必须使用第二个反斜杠进行转义。这实际上创建了一个反斜杠,可用于逃逸delimeter

因此,您的正则表达式变成:

preg\u match(“/^[\d+\\/\d+\\/\d+\\d+:\d+:\d+:\d+:\d+\CEST]\\w{8}\\w+?\+\w+?\+.+?$/”,$line,$matches)

请注意,您还缺少分隔符

此外,您可以简单地更改Delimter,如下所示:

preg\u match(“~^[\d+\/\d+\/\d+\\d+:\d+:\d+:\d+\d+\CEST]\\w{8}\\w+?\+\w+.+?$”,$line,$matches)

编辑


我刚刚注意到,您正在尝试将
[
]
作为文本进行匹配。但是,这些都是元字符(字符类),我认为也应该转义(
\[
\]
)。

您使用前斜杠作为分隔符,但在正则表达式中也包括未转义的前斜杠。你应该先在它们前面加两个反斜杠来逃避它们。需要两个反斜杠,因为反斜杠本身是元字符,必须使用第二个反斜杠进行转义。这实际上创建了一个反斜杠,可用于逃逸delimeter

因此,您的正则表达式变成:

preg\u match(“/^[\d+\\/\d+\\/\d+\\d+:\d+:\d+:\d+:\d+\CEST]\\w{8}\\w+?\+\w+?\+.+?$/”,$line,$matches)

请注意,您还缺少分隔符

此外,您可以简单地更改Delimter,如下所示:

preg\u match(“~^[\d+\/\d+\/\d+\\d+:\d+:\d+:\d+\d+\CEST]\\w{8}\\w+?\+\w+.+?$”,$line,$matches)

编辑

我刚刚注意到,您正在尝试将
[
]
作为文本进行匹配。然而,这些是元字符(字符类),我认为也应该转义(
\[
\]