简单测试的正则表达式在 php 中不起作用
Simple tested regex not working in php
这是我测试过的 regex:
(?:.*?- )(?<param_0>.*?)( Tu interés| Your main interest)(?:.*?- )(?<param_1>.*?) \)
使用此输入字符串:
Array ( [0] => Si es estudiante de intercambio, elija su país de origen: - No soy un estudiante de intercambio Tu interés en nuestra oferta de titulaciones se centra en los estudios de: - grado )
这是我的代码:
$message = 'Si es estudiante de intercambio, elija su país de origen: - No soy un estudiante de intercambio Tu interés en nuestra oferta de titulaciones se centra en los estudios de: - grado ';
$regex = "/(?:.*?- )(?<param_0>.*?)( Tu inter| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";
if (preg_match_all($regex, $message, $matches)) {
$param_0 = matches[0];
$param_1 = matches[1];
echo 'Param 0: ';
echo $param_0;
echo '<br>Param 1: ';
echo $param_1;
echo '<br>';
} else {
echo 'no match';
}
我猜这是一些愚蠢的错误,但几乎没用过php,我找不到问题所在。
至于正则表达式部分,您可以使用代码生成器部分。你必须转义一些符号,看看它应该如何完成(见最后的\)/
):
$re = "/(?:.*?- )(?<param_0>.*?)( Tu interés| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";
你有:
$regex = "/(?:.*?- )(?<param_0>.*?)( Tu inter| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";
这是我测试过的 regex:
(?:.*?- )(?<param_0>.*?)( Tu interés| Your main interest)(?:.*?- )(?<param_1>.*?) \)
使用此输入字符串:
Array ( [0] => Si es estudiante de intercambio, elija su país de origen: - No soy un estudiante de intercambio Tu interés en nuestra oferta de titulaciones se centra en los estudios de: - grado )
这是我的代码:
$message = 'Si es estudiante de intercambio, elija su país de origen: - No soy un estudiante de intercambio Tu interés en nuestra oferta de titulaciones se centra en los estudios de: - grado ';
$regex = "/(?:.*?- )(?<param_0>.*?)( Tu inter| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";
if (preg_match_all($regex, $message, $matches)) {
$param_0 = matches[0];
$param_1 = matches[1];
echo 'Param 0: ';
echo $param_0;
echo '<br>Param 1: ';
echo $param_1;
echo '<br>';
} else {
echo 'no match';
}
我猜这是一些愚蠢的错误,但几乎没用过php,我找不到问题所在。
至于正则表达式部分,您可以使用代码生成器部分。你必须转义一些符号,看看它应该如何完成(见最后的\)/
):
$re = "/(?:.*?- )(?<param_0>.*?)( Tu interés| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";
你有:
$regex = "/(?:.*?- )(?<param_0>.*?)( Tu inter| Your main interest)(?:.*?- )(?<param_1>.*?) \)/";