正则表达式匹配但不包含在组

时间:2016-02-08 00:33:03

标签: c# regex

我正在做一点正则表达式以识别复杂的数字。我需要在C#学校课程中使用它。 我必须认识到复杂的数字: 3 + 5I 3 + 5K 4 12-15 6个+ F7

因此,虚部可以在值后面或前面加上任何字符。 我写了这个正则表达式:

(?<reale>[+-]?\d+)(?<immaginaria>[+-]\d+[a-zA-Z]|[+-][a-zA-Z]\d+)

问题是,当我采取名为&#34; immaginaria&#34;我已经得到了虚构的部分字符(像我或j),我希望得到它没有.. 我找到了使用Look-ahead和Look-behind的解决方案但是我在尝试在我的正则表达式中实现它时遇到了问题(它是我写的第一个正则表达式)

(?<reale>[+-]?\d+)(?<immaginaria>[+-]\d+(?=[a-zA-Z])|[+-](?=[a-zA-Z])\d+)

1 个答案:

答案 0 :(得分:0)

我修改了你的第一次尝试,将符号和虚部的值分开,你可以在成功匹配后将它们连接起来:

(?<reale>[+-]?\d+)((?<immaginariasign>[+-])(?<immaginaria>\d+)[a-zA-Z]|(?<immaginariasign>[+-])[a-zA-Z](?<immaginaria>\d+))