C#学习教程:C#正则表达式模式难题分享


C#正则表达式模式难题

我有一个正则表达式,我已经在3个单独的源中validation为成功匹配所需的文本。

  1. http://regexlib.com/RETester.aspx
  2. http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx ,
  3. http://sourceforge.net/projects/regextester/

但是,当我在我的代码中使用正则表达式时。 它不会产生匹配。 我已使用其他正则表达式与此代码,他们已导致所需的匹配。 我很茫然……

string SampleText = "starttextherernothertexthereendtexthere"; string RegexPattern = "(?<=starttexthere)(.*?)(?=endtexthere)"; Regex FindRegex = new Regex(@RegexPattern); Match m = FindRegex.Match(SampleText); 

我不知道问题是我的正则表达式还是我的代码。

问题是您的文本包含rn ,这意味着它分为两行。 如果要匹配整个字符串,则必须设置选项以匹配多行,并更改行为. 在匹配中包含n (换行符)

  Regex FindRegex = new Regex(@RegexPattern, RegexOptions.Multiline | RegexOptions.Singleline); 

您不需要RegexOptions.Multiline

在您的情况下,问题是点匹配除换行符( rn )之外的任何字符。

因此,您需要像这样定义正则表达式模式: (?<=starttexthere)[wrn]+(?=endtexthere) ,以便跨换行符专门匹配文本。

这是一个在线运行示例: http : //ideone.com/ZXgKar

上述就是C#学习教程:C#正则表达式模式难题分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031416.html

发表评论

邮箱地址不会被公开。 必填项已用*标注