【问题标题】:Issue with whitespace between text in a web page网页中文本之间的空格问题
【发布时间】:2012-07-10 14:45:37
【问题描述】:

我尝试使用正则表达式删除文本之间的空白。下面的输入字符串呈现在网页上。

string inputString = "あさ9:30 - よる10:00";
Regex Spaces = new Regex(@"\s+");
string s = Spaces.Replace(inputString, string.Empty);

正则表达式模式不适用于输入字符串。 9:30 和 10:00 之间的空间看起来不像是空白。不知道它是什么样的空间。

有什么建议吗?

【问题讨论】:

  • 所以你的意思是在你运行正则表达式之后,字符串看起来像下面这样 "あさ9:30-よる10:00" 破折号两边没有空格 "-"
  • 你想要的确切输出是什么?

标签: c# regex webpage


【解决方案1】:

你的角色不是你想象的那样。 仔细观察。你认为它是:当它实际上是:那是两个不同的字符。此外,那里根本没有空格

说真的:这个字符不是标准的冒号。这是一个不同的角色。看看这里的两个并排:

::

【讨论】:

  • 对,它是 u+ff1a,一个“全角冒号”。
  • 我想知道它是否是一些花哨的 unicode 东西,比如多合一字形,以及它是否可以被规范化/分解或者它是一个原子的东西。
  • 没什么花哨的,只是一个奇怪的冒号,周围有一堆空格。
  • @GGG Right...这就是导致用户认为那里有“空白”的原因。
  • 这是日文网页。我正在使用 UTF8 编码从网页中获取内容。编码可能已经以这种方式转换了它。我的猜测。
【解决方案2】:

您是否尝试过只做一个简单的replace(" ","")?当正则表达式不起作用时,这通常对我有用。

【讨论】:

  • 同理,“:”是一个字符。
  • @Rab 所以它不是空格,不能这样删除。
  • @Rab Nawaz 所以,简单的 replace(":",":");虽然这看起来不是很通用。
  • @Rab 。它不是 : 。它是,这与: 完全不同,并且那里根本没有空格
  • @EugeneRyabtsev 是正确的。这是一个字符。我不得不使用另一个正则表达式来替换字符串 inputString = "あさ9:30 - よる10:00"; Regex.Replace(inputString, @"[:]", ":");
猜你喜欢
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多