我正在构建一个正则表达式,但由于它无法正常工作,我错过了一些东西。 我的正则表达式逻辑试图寻找任何具有# anychars #的东西,并返回句子上的匹配数而不是单个匹配。 以下是一些例子
1- - (void)setButtonColor:(UIColor*) color {
NSLog(@"color");
}
应返回两个匹配项:#_Title_# and #_Content_#
。
2- #_Title_# and #_Content_#
应返回3个匹配:Product #_TemplateName_# #_Full_Product_Name_# more text. text text #_Short_Description_#
#_TemplateName_#
和#_Full_Product_Name_#
等等。这是我的正则表达式的样子:#_Short_Description_#
对我做错了什么的想法?
答案 0 :(得分:2)
简单的事情:
.row-no-padding {
margin-left: 0;
margin-right: 0;
}
.row-no-padding .col-sm-4 {
padding-left: 0;
padding-right: 0;
}
或者:
body > .container {
padding-left: 0;
padding-right: 0;
width: 100%;
}
如果您也尝试匹配下划线(问题的原始版本中不清楚)。或者:
#.*?#
这样可以更轻松地在#_.*?_#
和#_(.*?)_#
分隔符之间提取令牌。
应该有效。 #_
是关键。它是非贪婪的。否则,您匹配第一个和最后一个_#
例如:
*?
输出:
#
答案 1 :(得分:1)
试试这个:
string[] inputs = {
"#Title# and #Content#",
"Product #TemplateName# #_Full_Product_Name_# more text. text text #_Short_Description_#"
};
string pattern = "(?'string'#[^#]+#)";
foreach (string input in inputs)
{
MatchCollection matches = Regex.Matches(input, pattern);
Console.WriteLine(string.Join(",",matches.Cast<Match>().Select(x => x.Groups["string"].Value).ToArray()));
}
Console.ReadLine();
答案 2 :(得分:1)
你的正则表达式不正确。此外,如果您想要所有匹配,您希望循环匹配。
static void Main(string[] args)
{
string input = "Product #_TemplateName_# #_Full_Product_Name_# more text. text text #_Short_Description_#",
pattern = "#_[a-zA-Z_]*_#";
Match match = Regex.Match(input, pattern);
while (match.Success)
{
Console.WriteLine(match.Value);
match = match.NextMatch();
}
Console.ReadLine();
}
答案 3 :(得分:0)
请勿使用锚点并将正则表达式更改为:
<xsl:choose>
<xsl:when test="document/richtext/pardef[@list] ='bullet'">
<ul>
<xsl:for-each select="document/richtext/par/run">
<li>
<xsl:for-each select="run">
<xsl:value-of select="."/>
</xsl:for-each>
</li>
</xsl:for-each>
</ul>
</xsl:when>
<xsl:otherwise>
<p>
<xsl:for-each select="document/richtext/par">
<p>
<xsl:for-each select="run">
<xsl:value-of select="."/>
</xsl:for-each>
</p>
</xsl:for-each>
</p>
</xsl:otherwise>
</xsl:choose>
在正则表达式中,(#[^#]+#)
表达式意味着任何字符但
[^#]