用“not contains”写正则表达式

时间:2013-09-26 12:27:14

标签: regex powershell

我有三个字符串:

xhtml.AddHtml( g_Lang.Text( Id,L_EXPORT_IS_NOT_SUPPORTED_FOR_THIS_ELEMENT ), false);
xhtml.AddHtml( g_Lang.Text(Id,  L_EXPORT_IS_NOT_SUPPORTED_FOR_THIS_ELEMENT ), false);
sGradeTitle = g_Lang.Text(CustomerID, nTitle, LanguageID);

我想写regexpression接受第三行而不接受第一行和第二行:

.*g_Lang\.Text\(\s*[A-Za-z]*,\s*[here must be not L_].*

这就是我试过的,你能帮我纠正一下吗?

1 个答案:

答案 0 :(得分:5)

您走在正确的轨道上,只需使用(?!.*L_)代替(?!L_).*会在任何地方检测到L_

.*g_Lang\.Text\(\s*[A-Za-z]*,\s*(?!.*L_).*

您可能还想将第一个贪婪的.*转换为懒惰以稍微提高性能(通过减少回溯次数):

.*?g_Lang\.Text\(\s*[A-Za-z]*,\s*(?!.*L_).*