我有一个包含固定宽度数据的导出文件:
名称(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
答案 0 :(得分:1)
这应该包含所有四个字段:
/^(?<name>.{6})(?<gender>.{6})\((?<prefix>[^\)]+)\)\ (?<number>.+)/
^
表示从头开始匹配。{6}
:匹配模式的6倍(此处加号是多余的)\(
和\)
:匹配括号(没有转义它们将意味着子模式的边界)[^\)]+
表示“第一个结束时的所有内容”