0

请任何人都可以告诉我一个解决方案,该解决方案将允许我的正则表达式匹配以下数据行......

0002,Area (Region Name),No value
0003,Area (Region Name),Up North

...但应该在这条线上失败(由于最后一组是空的)

0001,Area (Region Name),

我现在的表达是:

(?<BRANCH_CODE>[a-zA-Z0-9]{1,8}),(?<UDA_NAME>[a-zA-Z0-9!"\£\$\%\^\&\*\(\)\-+_ /]{1,50}),(?<UDA_VALUE>[a-zA-Z0-9!"\£\$\%\^\&\*\(\)\-+_ /]{1,50})

...在 Expresso 中运行良好,但在我的 C# 代码中却不行!

任何帮助表示赞赏。谢谢你。

没有帮助的参考: 正则表达式匹配一个额外的空组

4

2 回答 2

3

转义所有双引号。

@"(?<BRANCH_CODE>[a-zA-Z0-9]{1,8}),(?<UDA_NAME>[a-zA-Z0-9!""\£\$\%\^\&\*\(\)\-+_ /]{1,50}),(?<UDA_VALUE>[a-zA-Z0-9!""\£\$\%\^\&\*\(\)\-+_ /]{1,50})"
于 2015-03-10T14:06:08.240 回答
1

该表达式看起来正确,但我会确保您的表达式中有一个开始和结束字符,或者它可能在字符串中匹配。

^(?<BRANCH_CODE>[a-zA-Z0-9]{1,8}),(?<UDA_NAME>[a-zA-Z0-9!"\£\$\%\^\&\*\(\)\-+_ /]{1,50}),(?<UDA_VALUE>[a-zA-Z0-9!"\£\$\%\^\&\*\(\)\-+_ /]{1,50})$
于 2015-03-10T14:04:31.427 回答