preg_match php在两个搜索参数之间返回文本
如果这是重复的,我很抱歉,但是经过几个小时的搜索后,我在谷歌上找不到任何东西,我对字符串操作非常陌生,也不知道找到我想要的信息的正确术语 基本上我是在操纵这根弦preg_match php在两个搜索参数之间返回文本,php,preg-match,Php,Preg Match,如果这是重复的,我很抱歉,但是经过几个小时的搜索后,我在谷歌上找不到任何东西,我对字符串操作非常陌生,也不知道找到我想要的信息的正确术语 基本上我是在操纵这根弦 Date Time Name IP UniqueID $line = 02.12.2013 16:00:03: Connor Bergolio (75.13.15.229:5557) fcfd6ba862c7461a88e2b13babc691
Date Time Name IP UniqueID
$line = 02.12.2013 16:00:03: Connor Bergolio (75.13.15.229:5557) fcfd6ba862c7461a88e2b13babc691dd
所以我试着检索这个名字,但是因为他们可以选择任何他们想要的名字,它可能有1个空格或10个空格,所以爆炸是不可能的
现在我想知道是否可以使用2个变量运行pregmatch。这将返回之间的信息
$pattern1 = '$time, $ip';
preg_match($pattern1, $line, $name);
看这一点,它的方式,但我几乎不知所措
我使用“$IPpattern=”/([0-9-():)]{19,23})/”;
为了获得IP,也许可以用它和一起寻找时间
提前感谢`我正在使用此正则表达式检索名称:
/[\d{2}.]{2}\d{4}\s(\d{2}:){3}\s(.+)(\s\(.+)/
,第二个结果是您的姓名。我正在使用此正则表达式检索姓名:
/[\d{2}.]{2}\d{4}\s(\d{2}:){3}\s(.+)(\s\(.+)/
,第二个结果是您的名字。以下模式将起作用:
preg_match('/^(.{19}): (.+?) +\(([0-9:.]+)\) ([a-f0-9]+)$/', $line, $matches);
$date = $matches[1];
$name = $matches[2];
$ip = $matches[3];
$uniqueId = $matches[4];
以下模式将起作用:
preg_match('/^(.{19}): (.+?) +\(([0-9:.]+)\) ([a-f0-9]+)$/', $line, $matches);
$date = $matches[1];
$name = $matches[2];
$ip = $matches[3];
$uniqueId = $matches[4];
由于不知道用户名允许使用的有效字符,或者不知道管理
日期
和时间
字段格式的任何规则,以下操作应该有效:
.*(?:\d\d:){3}\s*\K.+(?=\s?\()
解释
*(?:\d\d:){3}\s*\K
-将所有内容匹配到时间
字段,然后将其与\K
+(?=\s?\()
-将任何内容匹配一次或多次,但不包括找到的第一个括号
但这并不高效:(不知道用户名允许使用的有效字符,或者不知道管理
日期
和时间
字段格式的任何规则,以下操作应该有效:
.*(?:\d\d:){3}\s*\K.+(?=\s?\()
解释
*(?:\d\d:){3}\s*\K
-将所有内容匹配到时间
字段,然后将其与\K
+(?=\s?\()
-将任何内容匹配一次或多次,但不包括找到的第一个括号
但它的效率不高:(非常感谢您提供的工具,它看起来非常有趣,我将能够很好地使用它来帮助实现未来的功能。很难选择,但由于工具的原因。我必须选择这个:)谢谢大家,谢谢你这么多的工具,它看起来非常有趣,我将能够很好地使用它,以帮助未来的功能。这是很难选择,但由于该工具。我必须选择这个:)谢谢大家