这次我想做的是获得(
和)
之间的数字,过滤它们,以便我可以将它们放在锚定的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)
?>
但是我似乎找不到让它工作的方法。
Using 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);
使用这个正则表达式查找括号之间的内容:
var regExp = /'(([^)]+)')/;
var matches = regExp.exec("09:02:10 - Admin SO_Conner (1374991) teleported to player Footman_Skull_of_Reyne (1050854).");
(Regex演示)
用简单的字符串连接形成href
:
var href = "?get_engine&loopup=" + matches[1];
然后将此属性添加到锚元素:
$("a").attr("href", href);