php - 如何更改下面的代码片段以获取分隔符之间的第二个值?

标签 php regex

如何更改下面的代码片段以获取分隔符之间的第一个和第二个值?

输出示例:第一个值: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 demoregex 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/

相关文章:

php - 查看与您的 mysql 服务器版本相对应的手册,了解使用 near 的正确语法

php - 数组 - PHP 内存不足

python - Python 中的正则表达式

regex - 如果连续存在两个以上空格,请删除字符串中的空格

sql - Spark.sql() 的 REGEXP_REPLACE

php - MySQL如何在虚拟字段定义中实现条件

php - 以编程方式运行 Magento 1.9.1.0 数据流导入配置文件

php - 获取图像大小() : Filename cannot be empty

regex - 如何使用 awk 匹配多个变量模式?

regex - 向字符类alnum添加特殊符号