Php 在preg_match_all和学位符号方面遇到问题
我在包含学位符号的字符串上遇到preg_match_all问题。下面是代码示例Php 在preg_match_all和学位符号方面遇到问题,php,regex,Php,Regex,我在包含学位符号的字符串上遇到preg_match_all问题。下面是代码示例 //Sample data $x = "<array_0> <id>text-21650</id> <text>Lat/Long 38° 57' 34 N, 106° 21' 38 W</text> </array_0>"; $reels = '/<(\w+)\s*([^\/>]*)\s
//Sample data
$x = "<array_0>
<id>text-21650</id>
<text>Lat/Long 38° 57' 34 N, 106° 21' 38 W</text>
</array_0>";
$reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s';
preg_match_all($reels, $x, $elements);
foreach ($elements[1] as $ie => $xx) {
$name = $elements[1][$ie];
$cdend = strpos($elements[3][$ie], "<");
if ($cdend > 0) {
$xmlary[$name] = substr($elements[3][$ie], 0, $cdend - 1);
}
if (preg_match($reels, $elements[3][$ie]))
$xmlary[$name] = processEl($elements[3][$ie]);
else if ($elements[3][$ie] !== null) {
$xmlary[$name] = $elements[3][$ie];
}
}
//示例数据
$x=”
text-21650
横向/纵向38°57'34北纬106°21'38西
";
$REELLS='/]*)\s*(?:\/>|>(.*)/s';
preg_match_all($revels,$x,$elements);
foreach($elements[1]为$ie=>$xx){
$name=$elements[1][$ie];
$cdend=strpos($elements[3][$ie],“看一看
基本上,您必须切换到Unicode匹配
改为使用mb_ereg_match来支持UTF-8字符。文档:
初始化mb*如下所示:
mb_regex_编码('UTF-8');mb_内部_编码('UTF-8')
看一看
基本上,您必须切换到Unicode匹配
改为使用mb_ereg_match来支持UTF-8字符。文档:
初始化mb*如下所示:
mb_regex_编码('UTF-8');mb_内部_编码('UTF-8')
我也遇到了同样的问题,并且帮了我。基本上,要查找学位符号,您可以使用\x{00B0},即
preg_match_all(“/\x{00B0}/”,$x,$elements)
我也遇到了同样的问题,并且帮了我。基本上,要查找学位符号,您可以使用\x{00B0},即
preg_match_all(“/\x{00B0}/”,$x,$elements)
“由于某种原因,它不能正常工作“->这意味着什么?预期的行为和实际输出是什么?免费的建议…使用XML解析器,而不是正则表达式来解析XML。当我尝试时,该正则表达式的可能副本与示例字符串匹配得很好。向我们展示一些我们可以实际运行的显示问题的代码。“由于某种原因,它不能正常工作“->这意味着什么?预期的行为和实际输出是什么?免费的建议…使用XML解析器,而不是正则表达式来解析XML。当我尝试时,该正则表达式的可能副本与示例字符串匹配得很好。向我们展示一些我们可以实际运行的显示问题的代码。