如何更改下面的代码片段以获取分隔符之间的第一个和第二个值?
输出示例:第一个值:9100450
和第二个值:HHkk
基于 searchfor
值:12348888
$input = '0123456|BHKAHHHHkjkjkjkjk|12345678|JuiKKK121255
9100450|HHkk|12348888|JuiKKK10000000021sdadad255';
$searchfor = '12348888';
$regexp = "/(?<=" . $searchfor . "\\|)\\w+/m";
$result = preg_match_all($regexp, $input, $matches);
print_r($matches);
最佳答案
你可以使用
$regexp = "/^([^|]+)\|([^|]+)\|" . $searchfor . "\|/m";
请参阅 PHP demo 和 regex demo 。 详细信息:
^
- (此处,由于m
)行的开头([^|]+)
- 第 1 组:除|
字符之外的任何一个或多个字符\|
-|
字符([^|]+)
- 第 2 组:除|
字符之外的任何一个或多个字符\|
-|
字符12348888
- 一些硬编码值\|
- 一个|
字符。
如果您的 $searchfor
值可以包含特殊字符,请将代码中的 $searchfor
替换为 preg_quote($searchfor, '/')
.
查看 PHP demo:
$input = '0123456|BHKAHHHHkjkjkjkjk|12345678|JuiKKK121255
9100450|HHkk|12348888|JuiKKK10000000021sdadad255';
$searchfor = '12348888';
$regexp = "/^([^|]+)\|([^|]+)\|" . $searchfor . "\|/m";
if (preg_match($regexp, $input, $match)) {
$val1 = $match[1];
$val2 = $match[2];
echo "$val1\n$val2";
}
关于php - 如何更改下面的代码片段以获取分隔符之间的第二个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70371243/