2013-10-07 35 views
1

我有一個包含固定寬度的數據的導出文件:解析固定寬度的文件PHP正則表達式

名稱(6) 性別(6) 電話號碼(12) - 包括空間

DATA.TXT

DanielMale (07654) 521254 
Lisa Female(16545) 654456 
Sarah Female(54656) 4896546 

我需要提取的姓名和性別數據,包括空格,如果數據不適合數據寬度。

電話號碼的括號需要忽略。 (你如何忽略正則表達式中的項目?

我目前有以下正則表達式,可以取出人的姓名,我想我可以簡單地在白色上添加這個位以使其拉出性別,但是這個不工作。我在哪裏去了?

/(?<name>.{6}+)  (?<gender>.{6}+)/ 

我需要的數據,看起來像這樣在最後。

^ =空間

Daniel 
Male^^ 
07654 521254 

Lisa^^ 
Female 
16545 654456 

Sarah^ 
Female 
54656 4896546 

回答

1

這應該抓住四個領域:

/^(?<name>.{6})(?<gender>.{6})\((?<prefix>[^\)]+)\)\ (?<number>.+)/ 
  • 第一^意味着從一開始比賽。
  • {6}:匹配6倍的圖案(加號是多餘這裏)
  • \(\):匹配支架(不逸出它們將意味着一個子模式的邊界)
  • [^\)]+指「一切第一封閉托架之前