解析固定宽度文件 PHP 正则表达式


Parse Fixed Width File PHP Regular Expression

我有一个包含固定宽度数据的导出文件:

姓名 (6(性别 (6(电话号码 (12( - 包括一个空格

数据.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

这应该捕获所有四个字段:

/^(?<name>.{6})(?<gender>.{6})'((?<prefix>[^')]+)')' (?<number>.+)/
  • 第一个^意味着从一开始就匹配。
  • {6}:匹配模式的6倍(加号在这里是多余的(
  • '('):匹配括号(如果不转义,它们将意味着子模式的边界(
  • [^')]+的意思是"第一个右括号之前的所有内容