正则表达式(需要匹配2个字符串) - 但也考虑到字符

时间:2014-09-22 14:17:22

标签: regex

在网络应用中,用户提交说明。此描述将传递到存储过程,并将其保存到db。保存它时会在@Desc上运行一个函数:

从TextDictionary中选择@ Desc = dbo.Replace(' \ b' + Abbrev +' \ b',@ Desc,ReplacementText,0)

所以它基本上会遍历所有的Abbrevs,如果在' @ Desc'中有匹配它取代了Abbreev的ReplacementText。 Btw Replace函数使用SQLCLR来使用C#regex.replace函数。

主要问题是他们的一些缩写词是MA' MA,' MA,' MA,' MA,' MA; '等。考虑他们何时在描述中使用缩写并且后面有一个特殊字符。这会导致重大问题,例如“MA”。' MA。进入我的功能并使用。作为通配符值。即' \ b' + MA。 +' \ b'因此,如果描述中有文字,例如MAS,它将用“MA”替换它。'替换TEXT。

1 个答案:

答案 0 :(得分:0)

为什么要使用正则表达式比较两个字符串?如果你想要这两个字符串与?完全相同? 在哪里。 也许你需要有2个正常的表达。 或者在测试正常表达后做一个计数字符...

也许算法可能是:

rg1 and rg2
str1 and str2
if ( test rg1 match with str1 and str2 )
  then equals = count_characters( rg1 ) and count_characters ( rg2 )
else ( test rg2 match with str1 and str2 )
  then equals = count_characters( rg1 ) and count_characters ( rg2 )

检查您的正常表达,因为\ b也会考虑空格和点数,也许您应该用 \ s 替换结尾 \ b \ S \ b'/强>