这次我想要做的是获取(
和)
之间的数字,过滤掉它们,这样我就可以把它们放在一个固定的http href链接中。
文本文件示例:
09:02:10 - Admin SO_Conner (1374991) teleported to player Footman_Skull_of_Reyne (1050854).
09:02:15 - Admin SO_Conner (1374991) teleported to player Levy_Eddin_of_Reyne (1166164).
09:02:22 - Admin SO_Conner (1374991) faded out player Levy_Eddin_of_Reyne (1166164).
09:02:27 - Admin SO_Conner (1374991) teleported to player Valyrian_Militia_Crazymortal (1575057).
链接看起来像这样:
09:02:27 - Admin SO_Conner (<a href="?get_engine&loopup=1374991">1374991</a>) teleported to player Valyrian_Militia_Crazymortal (<a href="?get_engine&loopup=1575057">1575057</a>)
我已经尝试过这样做了:
<?php
if(strpos($line,'1374991') === false)
?>
但我似乎无法找到一种方法让它发挥作用。
答案 0 :(得分:2)
使用preg_replace
:
$file = file(/* path to file */);
foreach($file as &$line) {
$line = preg_replace('/(\d\d:\d\d:\d\d - [a-zA-Z _]+\()(\d+)(\)[a-zA-Z _]+\()(\d+)(\).*)/', '$1<a href="?get_engine&loopup=$2">$2</a>$3<a href="?get_engine&loopup=$4">$4</a>$5', $line);
}
这应该可行,即使正则表达式模式可以更简单。如果您确定txt文件的每一行的结构始终相同,则可以改为使用以下模式:
$line = preg_replace('/\((\d+)\)/', '<a href="?get_engine&loopup=$1">$1</a>', $line);
答案 1 :(得分:0)
使用此正则表达式查找括号之间的内容:
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec("09:02:10 - Admin SO_Conner (1374991) teleported to player Footman_Skull_of_Reyne (1050854).");
使用简单的字符串连接形成href
:
var href = "?get_engine&loopup=" + matches[1];
然后将此attrbiute添加到锚元素:
$("a").attr("href", href);