【问题标题】:Regex to get the text after first "space"?正则表达式在第一个“空格”之后获取文本?
【发布时间】:2011-09-29 14:37:05
【问题描述】:

这是一个我需要使用正则表达式解析的字符串。

http://carto1.wallonie.be/documents/terrils/fiche_terril.idc?TERRIL_id=1 Crachet 7/12

实际上这是一个 url,后跟 1 个空格和一个文本。 我需要以两种不同的方式提取 url 和文本。

提取网址\S+ 工作正常。

但是要在第一个空格之后提取文本,这真的很难理解。

我正在使用Yahoo Pipes。 (不知道this link to edit the code能不能用)

编辑:

使用 (\S+) (.+) 给了我一些奇怪的东西:

【问题讨论】:

  • 请始终指定您打算使用的语言或工具。 Regex implementations vary,并且适用于一种语言的解决方案可能不适用于另一种语言。
  • 谢谢。在第一篇文章中添加了链接。

标签: javascript regex string extract space


【解决方案1】:

根据Pipes documentation,看起来它使用了相当标准的正则表达式语法。试试这个:

^(\S+)\s(.+)$

那么 URL 将是 $1,评论将是 $2。 . 运算符匹配任何您需要的字符,因为看起来 cmets 可能有空格。

编辑:从文字空间更改为\s,因为您可能正在查看一些奇怪的空白字符。你也可以在里面扔一个^$,这样匹配就会失败,而不是做一些奇怪的事情。

【讨论】:

  • 也许想添加一个^
  • ^ 可能对人类可读性很好,但这不是必需的。由于+ 运算符是贪婪的,它们都会尽可能多地抓取字符,在这种情况下,它们必然是整个字符串。
  • 我认为有隐藏字符,用“X”替换 \S 给我:xtr> carto1.wallonie.be/documents/terrils/… Crachet 7/12
  • 有趣。是的,看起来像空间的东西实际上可能稍微复杂一些。使用\s更安全。
  • 其实第一个空格不是空格而是别的东西!用“X”替换 \s 仅突出显示第二个空格。我尝试了每个表达式,但无法突出显示第一个空格是什么。也许这是另一个问题,我应该创造一些新的东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2017-10-28
  • 2021-03-15
相关资源
最近更新 更多