vb.net正则表达式 - 查找多次出现

时间:2011-03-22 23:09:15

标签: regex vb.net

vb.net regex

我有一些像这样的字符串来分析:

<%JohnSmith $> @其他一些文字@<%FredJonese%> @(@<%SallyHarris%> @)@

我需要找到介于<%和%>之间的每个文本块的出现次数。以及每对@符号之间的那些。

因此,对于上面的示例,我想检索以下6个文本(下面第2行和第4行中有一个前导空格):

JohnSmith对

其他一些文字

FredJones

SallyHarris

当我使用像“<%\ w%>”这样的模式时,它会检索整行,因为该行以<%和%>开头和结尾

我迷失了最好的方法。我需要按照它们发生的顺序排除这些块。

到目前为止,我没有尝试过任何工作。我知道我可以编写一个循环遍历字符串的字符,但似乎正则表达式可以处理这个。任何人都可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要在星号或加号(懒星或延迟加号)后添加延迟运算符。如果不这样做,则匹配是贪婪的(默认值),因此它会尝试尽可能匹配。

<%\w*?%>

注意问号。这将匹配所有三个。