我有一个html字符串,我需要通过正则表达式。此表达式必须以以下格式检测MailChimp标记:*|TagName|*
我对正则表达式不太熟悉。我目前使用的是:\*\|([^]]*)\|\*
但是他的正则表达式检测到2个匹配项之间的while字符串。如果我们有:
"Sample text with user *|User_Name|*, to verify regular expression with *|Date_Value|*, and some other text"
,
比赛将是:
"*|User_Name|*, to verify regular expression with *|Date_Value|*"
如果有人可以告诉我如何更改表达式或使用什么来代替分别检测所有匹配项。
谢谢
答案 0 :(得分:3)
请试试这个正则表达式:
string source =
"Sample text with user *|User_Name|*, to verify regular expression with *|Date_Value|*, and some other text";
string pattern = @"\*\|.*?\|\*"; // please, notice ".*?" instead of ".*"
// ["*|User_Name|*", "*|Date_Value|*"]
string[] matches = Regex
.Matches(source, pattern)
.OfType<Match>()
.Select(match => match.Value)
.ToArray();
诀窍在.*?
而不是.*
- 匹配为少数字母