我正在尝试执行一个程序,在文本文件中搜索某些标记,并查看这些标记之间是否有文本。以下标签示例。
--<UsrDef_Mod_Trigger_repl_BeginMod>
--<UsrDef_Mod_Trigger_repl_EndMod>
所以我想搜索--<UsrDef_Mod_
和_Begin
或_End
我制作了这些RegExp,但每一个都是假的。
if (Regex.Match(line, @"/--<UsrDef_Mod_.*_BeginMod>/g", RegexOptions.None).Success)
else if (Regex.Match(line, @"/--<UsrDef_Mod_.*_EndMod>/g", RegexOptions.None).Success)
所以任何帮助找到我出错的地方。我使用regexr.com检查我的正则表达式并在那里获得匹配但不在C#中。
答案 0 :(得分:4)
.NET库Regex不了解window.onload = function() {
if($(window).width() > 991)
{
$('#main-slider').removeClass('hidden');
}
else
{
$('#main-slider').addClass('hidden');
}
}
包装器。
删除它:
"/ /g"
答案 1 :(得分:2)
if (Regex.Match(line, @"--<UsrDef_Mod_.*_BeginMod>", RegexOptions.None).Success)
if (Regex.Match(line, @"--<UsrDef_Mod_.*_EndMod>", RegexOptions.None).Success)
这两者都匹配 - 你只需删除/ - 和/ g选项 - 根据Henk Holtermann的答案 - a comparison of perl and c# regex options on SO - 供进一步参考。
答案 2 :(得分:0)
var matches = Regex.Matches(text, @"<UsrDef_Mod_([a-zA-Z_]+)_BeginMod>([\s\S]+?)<UsrDef_Mod_\1_EndMod>");
if (matches != null)
foreach (Match m in matches)
Console.WriteLine(m.Groups[2].Value);
组#2将包含两个标签内的文本。