如何使用正则表达式取出文本中的特定值

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:20:46
比如说我的文本文件中有以下值
CBWH000,112201,CBCB000,,,,23552
CBWH000,112201,CBHB000,,,,1396700.95
CBWH000,112201,CBBB000,,,,247444.54
CBWH000,112201,,AG02,,,5405.65
CBWH000,112201,CBCB000,AG09,,,23552
CBWH000,112201,CBHB000,AG09,,,1396700.95
CBWH000,112201,CBBB000,AG09,,,247444.54
CBWH000,112201,,,Mainland,,5405.65
CBWH000,112201,CBCB000,,Mainland,,23552
CBWH000,112201,CBHB000,,Mainland,,1396700.95
CBWH000,112201,CBBB000,,Mainland,,247444.54
CBWH000,112301,,,,,54636.68
CBWH000,112306,,,,,35000
CBWH000,112301,,AG01,,,54636.68
我需要一些符合一定条件的行,条件是:

(1)第三个逗号前有值
(2)第四个逗号前有值或第五个逗号前有值
正则表达式应该怎么写啊?

<?php

$doc = file('s.php');

echo '<pre>';

print_r($doc);

echo '</pre><hr><pre>';

print_r(getlines($doc));

echo '</pre>';

function getlines(&$doc){

foreach($doc as $record){

$tmpary = explode(',' , $record);

if(!empty($tmpary[2]) && (!empty($tmpary[3]) || !empty($tmpary[4]))){

$ary[] = $record;

}
}
return $ary;
}

?>

(1)

/^(([^,]*,){2})[^,]+,/

(2)

/^(([^,]*,){3,4})[^,]+,/

补充:
如果要取整行,在后面加 .*$ 。

/^(([^,]*,){2})[^,]+,.*$/

/^(([^,]*,){3,4})[^,]+,.*$/