假设我有以下一行:
09:00 23/02/2012#3.5#2.2#91#3.7#7.4#170#S#1033.1#(+1 Hpa / 3H).#0#3H##4.5#Plus de 2500m #6####00#### Brume.#
我想找到第15个#之后的第一个数字或字符
在这种情况下,我要查找的数字是6。
在此示例中:
03:00 24/02/2012#8.9#5.5#79#3.7#5.55#190#S#1031.3#(-1.1 Hpa / 3H).#0#3H##10#300 et 600m#7####00#####
我要寻找的号码是7。
但这并不总是数字,例如在此行中:
00:00 29/02/2012#3.3#-0.2#78##3.7##N#1023.6#(+0.3 Hpa / 3H).#0#3H##22#Plus de 2500m######### Le ciel est clair.#
第15个#之后的字符也是#。
那么如何使用PHP正则表达式获取此数字或字符?
我试过了
$content = '09:00 23/02/2012#3.5#2.2#91#3.7#7.4#170#S#1033.1#(+1 Hpa / 3H).#0#3H##4.5#Plus de 2500m #6####00#### Brume.#';
$iparr = preg_split ("/#/", $content);
echo $iparr[16];
但是对于第三个示例,它什么也没有给出。 (由于连续2个#)
最佳答案
您可以使用explode
。
$parts = explode('#', $string, 16);
$item = substr($parts[15], 0, 1);
在PHP> = 5.4.0中,您可以这样编写:
$string = '09:00 23/02/2012#3.5#2.2#91#3.7#7.4#170#S#1033.1#(+1 Hpa / 3H).#0#3H##4.5#Plus de 2500m #6####00#### Brume.#';
$index = 16;
var_dump(explode('#', $string)[$index - 1]);