1

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

姓名 (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
4

1 回答 1

1

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

/^(?<name>.{6})(?<gender>.{6})\((?<prefix>[^\)]+)\)\ (?<number>.+)/
  • 第一个^意味着从一开始就匹配。
  • {6}: 匹配 6 次模式(加号在这里是多余的)
  • \(and \): 匹配括号(不转义它们将意味着子模式的边界)
  • [^\)]+表示“第一个右括号之前的所有内容
于 2013-10-07T23:09:36.753 回答