在网络应用中,用户提交说明。此描述将传递到存储过程,并将其保存到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。
答案 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'/强>