C# 如何修剪空间?
我有一个字符串,它的开头和结尾都有空格。例如:C# 如何修剪空间?,c#,.net,regex,C#,.net,Regex,我有一个字符串,它的开头和结尾都有空格。例如: <para> This is a test paragraph </para> 但这行不通 此外,我的字符串包含多行 string mainstring = "<para> This is a test paragraph </para>"; string regex1 = "(<\\w+[^<>\\/]*> | <\\/\\w+>)"; mainstring =
<para> This is a test paragraph </para>
但这行不通
此外,我的字符串包含多行
string mainstring = "<para> This is a test paragraph </para>";
string regex1 = "(<\\w+[^<>\\/]*> | <\\/\\w+>)";
mainstring = Regex.replace(mainstring, regex1, "");
string mainstring=“这是一个测试段落”;
字符串regex1=“(|”)”;
mainstring=Regex.replace(mainstring,regex1,“”);
但这会删除所有找到的值,并将其替换为“
”
主要输入:“这是一个测试段落”
预期输出:
“这是一个测试段落”
您可以使用此正则表达式捕获标记和内部文本,忽略标记前后的空格
(<(\w+)>)\s*(.*?)\s*(<\/\2>)
印刷品
Before: <para> This is a test paragraph </para>
After: <para>This is a test paragraph</para>
Before:这是一个测试段落
之后:这是一个测试段落
我认为最简单的方法是提取标记之间的文本,然后对该文本使用Trim()
方法:
var mainstring = "<para> This is a test paragraph </para>";
// First index of >
var start = mainstring.IndexOf(">") + 1;
var prefix = mainstring.Substring(0, start);
// Last index of <
var end = mainstring.LastIndexOf("<") - 1;
var suffix = mainstring.Substring(end + 1);
mainstring = prefix + mainstring.Substring(start, end - start + 1).Trim() + suffix;
var mainstring=“这是一个测试段落”;
//>的第一个索引
var start=mainstring.IndexOf(“>”)+1;
变量前缀=主字符串。子字符串(0,开始);
//最后索引<
var end=mainstring.LastIndexOf(“在要保留的零件周围使用(在替换模式中替换它们)和\s+
删除空白:
string mainstring = "<para> This is a test paragraph </para>";
string regex1 = @"(<\w+[^<>/]*>)\s+|\s+(</\w+>)";
mainstring = Regex.Replace(mainstring, regex1, "$1$2");
Console.WriteLine(mainstring);
string mainstring=“这是一个测试段落”;
字符串regex1=@“()\s+|\s+()”;
mainstring=Regex.Replace(mainstring,regex1,“$1$2”);
控制台写入线(主环);
看
详细信息
()\s+
-组1($1
):
,然后是组外的1+空格
|
-或
\s+
-1+空格
()
-第2组($2
):
以下是:
如果“打开”标记后有换行符,或“关闭”标记前有换行符,是否要删除它们?因此,所有标记都是成对的,从不嵌套?它将所有值替换为“\1\3\4”"。在regex101.com中,输出是完美的,但在用C#编写相同的代码时,它并没有达到预期效果。使用$1
而不是在C#中使用\1
,我添加了一个C#代码演示。希望这会有所帮助。只是为了让它更清晰:当您不打算使用字符串转义序列时,逐字字符串文字是很好的。此外,/
不是一个特殊的代码al regex char和.NET regex不使用regex分隔符。@PushpeshKumarRajwanshi-它替换了大部分代码,但在某些地方失败了。请帮助我。我无法将代码粘贴到这里。@PrimoChalice:您能分享示例中不起作用的部分吗?尽管我怀疑是其他原因导致无法使用它要使其工作。您可以在我的演示URL中添加示例。它似乎不工作,因为它吞噬了第一个
,请参阅@WiktorStribiżew谢谢,您是对的:)更正
var mainstring = "<para> This is a test paragraph </para>";
// First index of >
var start = mainstring.IndexOf(">") + 1;
var prefix = mainstring.Substring(0, start);
// Last index of <
var end = mainstring.LastIndexOf("<") - 1;
var suffix = mainstring.Substring(end + 1);
mainstring = prefix + mainstring.Substring(start, end - start + 1).Trim() + suffix;
string mainstring = "<para> This is a test paragraph </para>";
string regex1 = @"(<\w+[^<>/]*>)\s+|\s+(</\w+>)";
mainstring = Regex.Replace(mainstring, regex1, "$1$2");
Console.WriteLine(mainstring);