当前位置:Gxlcms > PHP教程 > 一个很简单的匹配有关问题

一个很简单的匹配有关问题

时间:2021-07-01 10:21:17 帮助过:7人阅读

一个很简单的匹配问题
-------------文本---------------

Name1 A B C
Name2 A B C
Name3 A B C

-------------文本---------------


A、B、C是3个随机数字,有时某个数字会为空(即变为 Name1 A C),请问如何才能在任何情况下取到ABC三个位置的值呢?
谢谢!

------解决方案--------------------
PHP code
  1. $s = <<< TXT
  2. Name1 A B C
  3. Name2 A C
  4. Name3 A B C
  5. TXT;
  6. preg_match_all('/([ABC]+)\s+([ABC]*)\s+([ABC]*)\s*$/m', $s, $r);
  7. print_r($r);
  8. <br><font color="#e78608">------解决方案--------------------</font><br>
  9. 嘿嘿...<br><br>a.php<br>-------------文本---------------<br><br>Name1 11 23 14<br>Name2 43 33<br>Name3 30 44 2<br><br>-------------文本---------------<br>b.php<br><br><!--?php<br /-->$file = "a.php"; // 变量赋值<br>$fp = fopen ( $file, "r" ); // 以只读方式打开文件<br>$i = 0; // i=0<br>while ( ! feof ( $fp ) ) { // while循环,条件:没到文件的末端。<br>
  10. $buffer = fgets ( $fp, 4096 ); // fgets() 函数用于从文件中逐行读取文件,,读取的字节数。默认是 1024 字节。<br>
  11. preg_replace ( '/ +/', ' ', $buffer );<br>
  12. preg_match_all ( '/ ([0-9]+)/', $buffer, $matches );<br>
  13. if (! empty ( $matches [1] )) {<br>
  14. print_r ( $matches [1] );<br>
  15. }<br>
  16. $i = $i + 1; // 通过while循环,带动i值递增,实现数组构建。<br>}<br>fclose ( $fp ); // 关闭文件。<br>?>
  17. <br><font color="#e78608">------解决方案--------------------</font><br>其实还有我觉得还有一个比较大的疑问!因为LZ要的是数字和字母,比如:<br>文本:<br>Name1:11 32<br>我最后取出来的是<br><dl class="code">PHP code<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li></li><li>Array(</li><li> [0]=11</li><li> [1]=</li><li> [2]=32</li><li>) </li></ol></pre></dl>

人气教程排行