正则表达式 - 从行尾开始修剪空白

时间:2013-04-30 06:45:49

标签: regex

链接:http://regexone.com/example/5

它要求:编写一个简单的正则表达式来捕获每一行的内容,而不需要额外的空格。

我所拥有的是一堆乱七八糟的\ S +,有没有一种优雅的方法来解决这个问题?

1 个答案:

答案 0 :(得分:7)

编写正则表达式可能看起来像黑色艺术,但它实际上非常简单;最重要的一步是准确地识别出你所做和不想匹配的手术精确度,然后说出你的意思(不多也不少)。

另一个提示:当使用*+限定符时,特别是使用“{1}}等”通配符“字符时,请始终记住正则表达式的一部分可能”跑过“您所在的部分想匹配,也许匹配整个字符串。通常,最简单的解决方案是使用不情愿的限定符,例如.*?。 (最常见的正则表达式错误是那些使正则表达式与匹配的错误,当你不希望它而不是你希望时。)

在这种情况下,您需要“每行的内容,没有额外的空格”。这不够精确。什么是“额外的空白”?尾随和领先的空白?如果是的话......

让我们以完全精确,非模糊的术语表达。你基本上拥有的是:

  1. 空白字符区域(可能为空)
  2. 或者: a)没什么。 b)单个非空白字符。 c)以非空白字符开头和结尾的区域。
  3. 空白字符区域(可能为空)
  4. 你能表达为正则表达式吗?尝试这样做并在此发布,然后我会给你一些反馈。