【问题标题】:Split string by whitespace and dashes用空格和破折号分割字符串
【发布时间】:2012-03-02 14:48:32
【问题描述】:

将字符串拆分为“单词”数组的最佳方法是什么。 按空格和破折号分隔,破折号成为前一个“单词”的一部分。

例子:

"这是一个示例字符串

演示我的意思”

[ "This", "is" , "an" , "example-" , "string" , "to" , "demo" , "what" , "I" , "mean" ]

编辑:我是个白痴 - 是这样的:

someString.replace(/-/g, "- ").split(/[\s]/); // retain dashes

【问题讨论】:

    标签: javascript arrays string split


    【解决方案1】:

    如果分隔符应该保留在结果中,则拆分将不起作用,因为分隔符总是被消耗掉。

    改用.match

    "This is an example-string to demo what I mean".match(/[^\s-]+-?/g);
    // ["This", "is", "an", "example-", "string", "to", "demo", "what", "I", "mean"]
    

    这个正则表达式匹配一个或多个不是空格/破折号的字符,以及一个可选的破折号。使用g 标志,返回所有匹配项。

    【讨论】:

    • 您在我编辑问题时回答了我在发布后一分钟提出的解决方案。你的方法比我的好吗?
    • @adamarla:它们的行为似乎相同,除非单词以破折号开头。
    • 啊,是的,初始破折号可能很重要:“-12.85 为负数”
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多