我是regex等的初学者,我不知道如何为它构建过滤器。我基本上想要做的是:
我有一个.txt文件,带有IP和unix时间戳,例如11.11.11.11:1393598
(IP:timestamp),我想用regex做的是替换与某个IP关联的时间戳,所以如果文本文件中有3个ip和时间戳(用空格分隔)我想只用ip 11.11.11.11 (11.11.11.11:343434 to 11.11.11.11:999999)
替换一个,现在我对整个正则表达式的东西全新,所以我真的不知道该做什么,所以我没有尝试过的代码:/
非常感谢任何帮助!
答案 0 :(得分:2)
$string = '11.11.11.11:1393598';
$search = preg_quote('11.11.11.11');
$replace = '999999';
$string = preg_replace("/($search):\d+/", "$1:$replace", $string);
答案 1 :(得分:1)
未经测试,我不太了解php。
# $str = preg_replace_callback('/(11(?:\.11){3}:)(?:(343434)|(999999))/',
# function( $matches ){
# $repl = "999999";
# if ( $matches[3] != "" ) {
# $repl = "222222";
# }
# return $matches[1] . $repl;
# },
# $str);
#
#
# (11(?:\.11){3}:)(?:(343434)|(999999))
( # (1 start)
11
(?: \.11 ){3}
:
) # (1 end)
(?:
( 343434 ) # (2)
| ( 999999 ) # (3)
)