.Net正则表达式匹配问题

时间:2009-07-13 15:06:02

标签: .net regex

我现在有点困惑,显然很简单的正则表达式,但它必须是缺乏咖啡因或今天的天气。基本上我所拥有的是一个字符串,可以是'sw'或'ee'或'n.a。'。

现在我想要什么& need是一个regex.match,如果提供的字符串是'n.a.',则返回'',在所有其他情况下我想要'_'(下划线+原始值)。这可能吗?

3 个答案:

答案 0 :(得分:0)

以下正则表达式只会修改非'n.a'字符串值。

^(?!n\.a).*

答案 1 :(得分:0)

您可以使用对Regex.Replace的调用并使用匹配评估程序委托。基本上是:

返回Regex.replace(“sw | ee | n \ .a \。”,match => match.Value ==“na”?String.Empty:String.Format(“_ {0}”,match .value));

答案 2 :(得分:0)

你的问题可能会更清楚,但基本上是正则表达式

(N.A.)|([A-Z] +)

设置两组 - 第一组匹配'n.a。'第二个匹配任何一个或多个小写字符。因此,您可以匹配此正则表达式并查看第一个或第二个组是否为非空 - 如果第二个组受到攻击,则前置“_”。