【问题标题】:Splitting a string into sets of words [closed]将字符串拆分为单词集[关闭]
【发布时间】:2011-09-16 07:24:49
【问题描述】:

我想要字符串 “职业健康与安全” 的正则表达式。我希望将第一个单词拆分为 $1,将字符串的其余部分拆分为 $2。所以 "Occupational" 在一个字符串中,"Health and Safety" 在另一个字符串中。你能帮帮我吗?

先谢谢了。

【问题讨论】:

  • 我试过 var matches = htm.split(/(\w)(\s)/);
  • 我想要它在 javascript 中。
  • 你的字符串可以包含换行符吗?

标签: javascript regex


【解决方案1】:
(\S+)\s+(.*)

将第一个非空白字符串放入$1,将空格拆分后的其余字符串放入$2

match = subject.match(/(\S+)\s+(.*)/);
if (match != null) {
    // first word: match[1]
    // rest of string: match[2]
} else {
    // Match attempt failed
}

如果您的字符串可以包含换行符,则需要(因为您使用的是 JavaScript):

(\S+)\s+([\s\S]*)

【讨论】:

  • 在这种情况下真的不需要锚点。 :-) 哎呀,如果你取出锚,你甚至可以从前面删除\s*
  • 如果我想要它在 $0 我怎么能用这个正则表达式做到这一点?
  • 为什么?但是好的,这可以通过前瞻来完成:\S+(?=\s+(.*)$)
  • 编辑:通过强制第一个非空白字符串改进正则表达式。现在可以删除前导的\s*
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2016-12-04
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多