正则表达式逃避报价和返回参数

时间:2014-07-08 20:53:38

标签: .net regex email

我有一个正则表达式@(?<parameter>[\w_]+),它在开头用于@,并将其视为参数,并将分割字符串以供进一步处理。在我将电子邮件地址作为参数之前,一切都很好。

每当我尝试使用电子邮件地址时, regex 都会将其拆分为@。我正在寻找扩展这个正则表达式的想法,以便它通过验证:

测试:

hello  @1,@2,"ax@test"

返回:

parameter: 1
parameter: 2
parameter: ax@test

而不是:

parameter: 1
parameter: 2
parameter: test

1 个答案:

答案 0 :(得分:0)

从索引1获取匹配的组

[@"]((?<=@)\w+|\w*@[^"]*)"?

Online demo

将其替换为parameter: $1,如演示中所示。

用于程序C#的字符串文字:

@"[@""]((?<=@)\w+|\w*@[^""]*)""?"

输入:

@1,@25,"ax@test","@demo",@1he1

输出:

MATCH 1
1.  [1-2]   `1`
MATCH 2
1.  [4-6]   `25`
MATCH 3
1.  [8-15]  `ax@test`
MATCH 4
1.  [18-23] `@demo`
MATCH 5
1.  [26-30] `1he1`