我有以下Regex
用于翻译 SQL 字符串中的字段
string posLookBehind = @"(?<=\p{P}*)\b";
string posLookAhead = @"\b(?=\p{P}*)";
string keyword = "FieldA";
string translatedKeyword = "FldA";
string strSql = "SELECT [FieldA] FROM SomeTableA;";
strSql = Regex.Replace(
strSql,
baseRegexLeft + keyword + baseRegexRight,
translatedKeyword,
RegexOptions.IgnoreCase);
对于某些关键字FieldA
,上述正则表达式将在以下各项中将“FieldA”替换为“FldA”:[FieldA]
等[FieldA + FieldB]
。但是,我现在希望限制正则表达式。我不想匹配 'FieldA'
单撇号。
因此,我使用正则表达式减法更改了正则表达式以'
从标点符号集中删除:
string posLookBehind = @"(?<=[\p{P}-[']]*)\b";
string posLookAhead = @"\b(?=[\p{P}-[']]*)";
其他代码相同的地方。但这仍然是匹配'FieldA'
的。我在这里做错了什么?
谢谢你的时间。