我试图$result_text
从变量中获取 GOST,当我存储一个短字符串时,变量中包含一些 GOST,preg_match_all 会找到它。我得到一个元素的数组。但是当我写一个更大的行时,如下面的代码,我根本找不到任何出现。告诉我这里有什么问题?
$result_text = "ГОСТ 2.301-68 ЕСКД. Форматы;о наследия (памятниках истории и
культуры) народов
ГОСТ 34.201-89. Информационная технология. Комплекс стандартов на
автоматизированные системы. Виды, комплектность и обозначение документов при
создании автоматизированных систем;
ГОСТ 34.003-90 Информационная технология. Комплекс стандартов на
автоматизированные системы. Термины и определения;
ГОСТ 34.601-90 Информационная технология. Комплекс стандартов на
автоматизированные системы. Автоматизированные системы. Стадии создания;
ГОСТ 34.603-92 Информационная технология. Виды испытаний автоматизированных
систем;РД 50-34.698-90. Методические указания. Информационная технология.
Комплекс стандартов на автоматизированные системы. Автоматизированные
системы. Требования к содержанию документов;
";
$result_text = explode("ГОСТ", $result_text);
for ($i=0;$i<count($result_text);$i++){
$aaa = 'ГОСТ'.$result_text[$i];
echo $aaa.'<hr><br>';
if (preg_match_all("/ГОСТ.d{1,10}.d{1,10}.d{1,10}/i",$aaa,$matches)) {
var_dump($matches);
echo '<hr>';
}
else echo "NO<hr>";
}
直接使用
preg_match_all
以下正则表达式:查看正则表达式如何工作的示例。
细节
ГОСТ
- 线ГОСТ
\s*
- 0 个或多个空格字符\d+
- 1 位或多位数字\.
- 点符号\d+
- 1 位或多位数字-
- 连字符\d+
- 1 个或多个数字。PHP: