我有一个正则表达式@(?<parameter>[\w_]+)
,它在开头用于@
,并将其视为参数,并将分割字符串以供进一步处理。在我将电子邮件地址作为参数之前,一切都很好。
每当我尝试使用电子邮件地址时, regex 都会将其拆分为@
。我正在寻找扩展这个正则表达式的想法,以便它通过验证:
测试:
hello @1,@2,"ax@test"
返回:
parameter: 1
parameter: 2
parameter: ax@test
而不是:
parameter: 1
parameter: 2
parameter: test
答案 0 :(得分:0)
从索引1获取匹配的组
[@"]((?<=@)\w+|\w*@[^"]*)"?
将其替换为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`