12

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

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

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

4

1 回答 1

10

编写正则表达式可能看起来像一门黑魔法,但实际上很简单;最重要的一步是准确地确定您的行为和不想匹配的内容,然后说出您的意思(不多也不少)。

另一个提示:当使用*or+限定符时,尤其是使用“通配符”字符.时,请始终记住,正则表达式的一部分可能会“跑过”您想要匹配的部分,可能匹配整个字符串。通常,最简单的解决方案是使用不情愿的限定符,例如*?or +?。(最常见的 regexp 错误是那些在您不想要超过您想要的时候使 regexp 匹配的错误。)

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

让我们用完全准确、不含糊的术语来表达这一点。你基本上拥有的是:

  1. 空白字符区域(可能为空)
  2. 要么: a) 没有。b) 单个非空白字符。c) 以非空白字符开始和结束的区域。
  3. 空白字符区域(可能为空)

你能用正则表达式表达吗?尝试这样做并将其发布在这里,然后我会给你一些反馈。

于 2013-04-30T07:44:42.327 回答