如何使用 php 获取引号内的文本
how to get the text enclosed by quotations using php
所以我有一个非常大的转储文件,我必须从中提取特定内容。
该文件有记录,每条记录都包含用 "
括起来的特定数字。下面是文件的示例部分:
Ali Rabi (CustomerId=["3453456"]) // need to get: 3453456
Mohammad Reza Saberi (CustomerId=["12328"]) // need to get: 12328
目前我逐行阅读并获得如下ID。代码工作正常,我得到了我想要的结果:
$cid = substr($row, strpos($row, '[') +2, strpos($row, ']')-strpos($row, '[')-2);
echo $cid;
但是 PHP 没有这方面的功能吗?获取由一些定界符括起来的字符串?
我认为您可以使用 str_replace 删除“
$cid = str_replace('"','',$row);
如果您的所有记录看起来都像您提到的那些,我认为这是您可以使用正则表达式的完美场所。
正则表达式可帮助您在给定字符串中创建和查找模式。
对于你的情况,你可能会使用:
if (preg_match("/[0-9]+/", "Ali Rabi (CustomerId=[\"3453456\"])", $matches)) {
echo "Match was found <br />";
echo $matches[0];
}
preg_match() 函数可帮助您找到匹配项。此函数的第一个参数是您要查找的模式。在您的情况下,您正在寻找一组连续的数字,每个数字的范围为 0-9。
因此,对于单个数字,我们使用 [0-9]。在 [0-9] 后添加 +
表示匹配中至少需要一位数字。因此,[0-9]+ 作为正则表达式。
阅读 php 中有关正则表达式的更多信息:http://webcheatsheet.com/php/regular_expressions.php
尝试:
<?php preg_match_all("/([1-9]+)/",$yourtext, $result, PREG_PATTERN_ORDER); ?>
$result 包含所有匹配项。
更多信息:http://php.net/manual/de/function.preg-match-all.php
所以我有一个非常大的转储文件,我必须从中提取特定内容。
该文件有记录,每条记录都包含用 "
括起来的特定数字。下面是文件的示例部分:
Ali Rabi (CustomerId=["3453456"]) // need to get: 3453456
Mohammad Reza Saberi (CustomerId=["12328"]) // need to get: 12328
目前我逐行阅读并获得如下ID。代码工作正常,我得到了我想要的结果:
$cid = substr($row, strpos($row, '[') +2, strpos($row, ']')-strpos($row, '[')-2);
echo $cid;
但是 PHP 没有这方面的功能吗?获取由一些定界符括起来的字符串?
我认为您可以使用 str_replace 删除“
$cid = str_replace('"','',$row);
如果您的所有记录看起来都像您提到的那些,我认为这是您可以使用正则表达式的完美场所。
正则表达式可帮助您在给定字符串中创建和查找模式。
对于你的情况,你可能会使用:
if (preg_match("/[0-9]+/", "Ali Rabi (CustomerId=[\"3453456\"])", $matches)) {
echo "Match was found <br />";
echo $matches[0];
}
preg_match() 函数可帮助您找到匹配项。此函数的第一个参数是您要查找的模式。在您的情况下,您正在寻找一组连续的数字,每个数字的范围为 0-9。
因此,对于单个数字,我们使用 [0-9]。在 [0-9] 后添加 +
表示匹配中至少需要一位数字。因此,[0-9]+ 作为正则表达式。
阅读 php 中有关正则表达式的更多信息:http://webcheatsheet.com/php/regular_expressions.php
尝试:
<?php preg_match_all("/([1-9]+)/",$yourtext, $result, PREG_PATTERN_ORDER); ?>
$result 包含所有匹配项。 更多信息:http://php.net/manual/de/function.preg-match-all.php