我有用户在有或没有<p> and </p>.
的情况下输入数据如果他们输入没有那么我怎么能确定这个然后将它添加到我的字符串?使用像正则表达式这样的东西是否最有效?还是有更简单的方法吗?
请注意,我只关心字符串的开头和结尾,而不是介于两者之间的任何内容。
答案 0 :(得分:4)
假设您已经完成了所有相关的修剪和放大案件检查:
if (!s.StartsWith("<p>")) {
s = "<p>" + s;
}
if (!s.EndsWith("</p>")) {
s += "</p>";
}
答案 1 :(得分:3)
如果我理解你的需求,我会使用非常简单的东西,比如
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;
答案 2 :(得分:2)
regex
可能是个不错的解决方案
你可以检查
^\s*<p>
表示行的开头和
</p>\s*$
为行尾,如果您没有遇到匹配,则可以手动添加。
答案 3 :(得分:0)
C#字符串包含 StartsWith()和 EndsWith()方法。如果您的字符串名为输入 ...
if (!input.StartsWith("<p>")) input = "<p>" + input;
if (!input.EndsWith("</p>")) input += "</p>";
答案 4 :(得分:-1)
试试这个;
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.
}