0

我有一封要解析的电子邮件,它的正文包含类似

[Event Type]    HireEmployee
[REQUESTOR] POLM4
[SIN]   092
[Employee Name] JOHN,SMITH
[Existing payroll record]   False
[Existing PERM OA Mnemonic] 

我需要能够解析每个标头之后的信息以存储到变量中。

(\[REQUESTOR\]\t)[a-zA-Z0-9]+

会给我电话

[REQUESTOR] POLM4

但我只希望它返回“POLM4”

谢谢

编辑:我正在 http://regexpal.com/上进行测试

4

3 回答 3

1

将您不想要的东西放在非捕获组中。

例如,您可以执行以下操作,而不是您的原始表达式:

(?:\[REQUESTOR\]\t)([a-zA-Z0-9]+)

http://www.debuggex.com/i/brf8zRxz4OcPCTjb.png

No2 [REQUESTOR] 在非捕获组中,其余在捕获组中。

非捕获组是您要检查但尚未保存的组。

于 2013-08-15T18:57:01.350 回答
0

你可以正面看待背后。例如,您的正则表达式将变为

(?<=\[REQUESTOR\]\t)[a-zA-Z0-9]+

它使用 [REQUESTOR] 进行匹配,但不将其包含在匹配本身中。

于 2013-08-15T18:59:46.467 回答
0

您需要将结果[REQUESTOR] POLM4作为 var1 存储在变量中。并在 var1 as 上使用正则表达式^[^\)]*\]。这将在]包含]. 因此,您将获得所需的字符串为POLM4.

于 2013-12-04T11:25:04.883 回答