c# - 如何修剪空格?

标签 c# .net regex

我有一个字符串,它的开头和结尾都有空格。例如:

<para> This is a test paragraph </para>

现在我有一个正则表达式 "(<\\w+[^<>\\/]*> | <\\/\\w+>)"找到 > 之间的任何开始和结束空格和 < .

因此,如果我在开头或结尾发现任何空格,或者可能两者都有,我想修剪它。

我该怎么做?

我想到了:

string mainstring = "<para> This is a test paragraph </para>";
string regex1 = "(<\\w+[^<>\\/]*> | <\\/\\w+>)";
string regex2 = "(<\\w+[^<>\\/]*>|<\\/\\w+>)";
mainstring = Regex.replace(mainstring, regex1, regex2);

但这行不通。

此外,我的字符串包含多行。

string mainstring = "<para> This is a test paragraph </para>";
string regex1 = "(<\\w+[^<>\\/]*> | <\\/\\w+>)";
mainstring = Regex.replace(mainstring, regex1, "");

但这会删除所有找到的值并将其替换为 "" .

主要输入: "<para> This is a test paragraph </para>"
预期输出: "<para>This is a test paragraph</para>"

最佳答案

我认为最简单的方法是提取标签之间的文本,然后对该文本使用 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;

不需要使用正则表达式

关于c# - 如何修剪空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55530447/

相关文章:

c# - Code First 导航属性被保留但未加载

c# - 如何获得 child 控制权?

c# - 屈服返回请求永不返回

c# - 如何强制 Windows 重新连接到网络驱动器

php - 正则表达式 - 负前瞻性转义

c# - 日期不显示正确结果的DataTable选择方法

javascript 动画在 html 页面中工作,但相同的脚本在 .net 页面中不起作用

c# - 确保文本在 dataGridView 列中换行

javascript - 替换 Javascript 中子字符串之间的特定字符

r - 如何使用 dplyr pipe mutate 检测字符串是否包含正则表达式模式