我有用户输入数据时有或没有<p> and </p>.
如果他们没有输入,那么我如何确定这一点,然后将其添加到我的字符串中?使用正则表达式之类的东西最有效还是有更简单的方法?
请注意,我只关心字符串的开头和结尾,而不关心两者之间的任何内容。
假设您已完成所有相关的修剪和大小写检查:
if (!s.StartsWith("<p>")) {
s = "<p>" + s;
}
if (!s.EndsWith("</p>")) {
s += "</p>";
}
如果我了解您的需求,我会使用一些非常简单的东西,例如
var s = your_user_string;
if (!s.StartsWith("<p>") && !s.EndsWith("</p>"))
s = String.Format("<p>{0}</p>", s);
OP评论后更新:
var s = !input.StartsWith("<p>", StringComparison.InvariantCultureIgnoreCase) &&
!input.EndsWith("</p>", StringComparison.InvariantCultureIgnoreCase)
? String.Format("<p>{0}</p>", input)
: input;
regex
可能是一个不错的解决方案,您可以检查
^\s*<p>
对于行的开头和
</p>\s*$
对于行尾,如果您没有遇到匹配项,则可以手动添加它们。
C# 字符串具有StartsWith()和EndsWith()方法。如果你的字符串被命名为input ...
if (!input.StartsWith("<p>")) input = "<p>" + input;
if (!input.EndsWith("</p>")) input += "</p>";
Try this;
string input = "UserInput";
if (input.StartsWith("<p>") == true && input.EndsWith("</p>") == true)
{
//Nothing to do here.
}
else if (input.StartsWith("<p>") == true && input.EndsWith("</p>") == false)
{
input = input + "</p>";//Append </p> at end.
}
else if (input.StartsWith("<p>") == false && input.EndsWith("</p>") == true)
{
input = "<p>" + input;//Append </p> at beginning.
}
else if (input.StartsWith("<p>") == false && input.EndsWith("</p>") == false)
{
input = "<p>" + input + "</p>";//Append </p> at end and <p> at beginning.
}