如何根據分隔符“|”之前的匹配值獲取字串中的第二個值?
期望輸出:
12348888
113336669998888
基于搜索值: 1254698
<?php
$contents = '12345|BHKAHHHHkk
1254698|12348888
12345|BHKNe22223366
1254698|113336669998888
012250000|22154545488888';
$searchfor = '1254698';
if(preg_match('/(?:\n|^)' . $searchfor . '\|([^|] )(.*?)(?:\r?\n|$)/is', $contents, $matchs))
{
$second_value = $matchs[1];
$reset_values = $matchs[2];
echo "Result for searching <b>$searchfor</b> is <b>$second_value</b> and reset of data is <b>$reset_values</b>";
}
else echo('Not Found :(');
?>
uj5u.com熱心網友回復:
不要使用正則運算式,使用回圈并在|字符處拆分每一行。
$lines = file($input_file, FILE_IGNORE_NEW_LINE)
$found = false;
foreach ($lines as $line) {
[$first_value, $second_value, $reset_values] = explode('|', $line, 3);
if ($cols[0] == $searchfor) {
echo "Result for searching <b>$searchfor</b> is <b>$second_value</b> and reset of data is <b>$reset_values</b>";
$found = true;
}
}
if (!$found) {
echo 'Not Found :(';
}
uj5u.com熱心網友回復:
您可以使用
<?php
$contents = '12345|BHKAHHHHkk
1254698|12348888
12345|BHKNe22223366
1254698|113336669998888
012250000|22154545488888';
$searchfor = '1254698';
if(preg_match_all('/^' . $searchfor . '\|([^|\r\n] )/m', $contents, $matchs))
{
print_r($matchs[1]);
} else {
echo('Not Found :(');
}
請參閱
鏈接以獲取為您生成的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/383632.html
上一篇:如何在捕獲組結束時重置整個匹配?
