-------------文本---------------Name1 A B C
Name2 A B C
Name3 A B C-------------文本---------------
A、B、C是3个随机数字,有时某个数字会为空(即变为 Name1 A C),请问如何才能在任何情况下取到ABC三个位置的值呢?
谢谢!
Name2 A B C
Name3 A B C-------------文本---------------
A、B、C是3个随机数字,有时某个数字会为空(即变为 Name1 A C),请问如何才能在任何情况下取到ABC三个位置的值呢?
谢谢!
Name1 A B C
Name2 A C
Name3 A B C
TXT;
preg_match_all('/([ABC]+)\s+([ABC]*)\s+([ABC]*)\s*$/m', $s, $r);
print_r($r);Array
(
[0] => Array
(
[0] => A B C
[1] => A C
[2] => A B C
) [1] => Array
(
[0] => A
[1] => A
[2] => A
) [2] => Array
(
[0] => B
[1] => C
[2] => B
) [3] => Array
(
[0] => C
[1] =>
[2] => C
))
-------------文本---------------Name1 11 23 14
Name2 43 33
Name3 30 44 2-------------文本---------------
b.php<?php
$file = "a.php"; // 变量赋值
$fp = fopen ( $file, "r" ); // 以只读方式打开文件
$i = 0; // i=0
while ( ! feof ( $fp ) ) { // while循环,条件:没到文件的末端。
$buffer = fgets ( $fp, 4096 ); // fgets() 函数用于从文件中逐行读取文件,,读取的字节数。默认是 1024 字节。
preg_replace ( '/ +/', ' ', $buffer );
preg_match_all ( '/ ([0-9]+)/', $buffer, $matches );
if (! empty ( $matches [1] )) {
print_r ( $matches [1] );
}
$i = $i + 1; // 通过while循环,带动i值递增,实现数组构建。
}
fclose ( $fp ); // 关闭文件。
?>
$file = "a.php"; // 变量赋值
$fp = fopen ( $file, "r" ); // 以只读方式打开文件
while ( ! feof ( $fp ) ) { // while循环,条件:没到文件的末端。
$buffer = fgets ( $fp, 4096 ); // fgets() 函数用于从文件中逐行读取文件,,读取的字节数。默认是 1024 字节。
preg_replace ( '/ +/', ' ', $buffer );
preg_match_all ( '/ ([0-9]+)/', $buffer, $matches );
if (! empty ( $matches [1] )) {
print_r ( $matches [1] );
}
}
fclose ( $fp ); // 关闭文件
Array(
[0]=A
[1]=
[2]=C
)
该如何实现?又要麻烦您一下,真不好意思~
文本:
Name1:11 32
我最后取出来的是Array(
[0]=11
[1]=
[2]=32
)还是Array(
[0]=11
[1]=32
[2]=
)同样道理,字母的也有这种状况
NAME3 87 68
NAME3这一行想割成Array(
[0]=87
[1]=
[2]=68
)这样子
这样应该够清晰了
我已经问过他了,怎么区分 是 A 还是 B 还是 C 而且空格还不是固定的,是无法判断到底是什么的.
除非空格是可以判断固定的
我运行了下牛老大你的代码,的确是这样,如果LZ的需求就是这样,那也无所谓,感觉不太严谨!我建议LZ还是确定下,以免接下来的代码出问题
楼主也没回答我的问题如何区分这是b还是c?如果是这样可以改写正则条件
NAME1 21 12 43
NAME2 2 5 121
NAME3 87 68
NAME4 1 56 47
NAME4 20 12 4
就是在NAME3匹配出了问题,我想将这行分割成这样子的:
Array
(
[0] => 87
[1] =>
[2] => 68
)
就是中间为空的数字也占一个变量
Array
(
[0] => 87
[1] => 68
)