多行文本框中正则表达式的多次出现

6

我正在使用C#开发一个Windows应用程序。我要将一个文件(HTML、TXT、XHTML)加载到文本框中。我想在我的文本框中测试以下情况的出现。

,(comma) with closeup text (ex. text1,text2)
.(dot) with closeup text (ex. text1.text2)
:(colon) with closeup text (ex. text1:text2)
,(comma) with closeup ' i.e (left single quotation mark)
"(doublequote) with closeup text
'(single quote) with closeup text
</i> with closeup text (ex. </i>text)
</span> with closeup text.

针对上述条件的所有情况,我希望在文本框中突出显示特定的发现文本。我正在尝试使用正则表达式。我将所有情况插入到数组列表中,并逐一进行检查。对于第一种情况,如果文本框中的文本类似于"hjhdf, dfsjf",那么它将显示消息框,如果在这个特定的文本之前和之后有任何其他文本,则不会显示消息框。
string regexerror = wordToFind;
Regex myregex = new Regex("^[,]*[a-zA-Z]*$");
bool isexist = myregex.IsMatch(rtbFileDisplay.Text);
if (isexist)
{
    MessageBox.Show("Hi");
}

1
你可以使用 (?<=^|>)[^><]+?(?=<|$)\be(\w*)s\b 来匹配 HTML 中的文本。 - Not-RocketScience
1个回答

2

目前你只是使用了^匹配整个文本的开头。你需要让它匹配每行的开头。

看一下这个链接:http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx。它解释了如何使用MultiLine属性:

myregex.MultLine=true;

这应该可以完成任务。

有些情况下我需要使用 Regex.Split(),这样它就可以正常工作了。 - Manoj Nayak
看看一个叫做The Regulator的工具:http://sourceforge.net/projects/regulator/。这将帮助您开发和测试正则表达式。 - deadlyvices

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接