如何用空格和标点符号分割 JavaScript 字符串?
我有一些随机字符串,例如:Hello, my name is john.
。我希望将该字符串拆分为一个数组,如下所示:Hello, ,, , my, name, is, john, .,
。我尝试了 str.split(/[^\w\s]|_/g)
,但它似乎不起作用。有什么想法吗?
I have some random string, for example: Hello, my name is john.
. I want that string split into an array like this: Hello, ,, , my, name, is, john, .,
. I tried str.split(/[^\w\s]|_/g)
, but it does not seem to work. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
要在任何非单词字符上分割 str,即不是 AZ、0-9 和下划线。
或者,假设您的目标语言是英语,您可以使用以下方法从字符串中提取所有语义有用的值(即“标记化”字符串),
这会产生:
EDIT
也可用作 Github 要点
To split a str on any run of non-word characters I.e. Not A-Z, 0-9, and underscore.
Or, assuming your target language is English, you can extract all semantically useful values from a string (i.e. "tokenizing" a string) using:
which produces:
EDIT
Also available as a Github Gist
试试这个(我不确定这是否是您想要的):
http://jsfiddle.net/zNHJW/ 3/
Try this (I'm not sure if this is what you wanted):
http://jsfiddle.net/zNHJW/3/
尝试:
这将被任何非字母数字字符 (
\W
) 和任何下划线分隔。它使用捕获括号来包含最终结果中分割的项目。Try:
This will split by any non-alphanumeric character (
\W
) and any underscore. It uses capturing parentheses to include the item that was split by in the final result.这个解决方案给我带来了空间方面的挑战(仍然需要它们),然后我尝试了
str.split(/\b/)
,一切都很好。数组中输出空格,不难忽略,标点符号后面剩下的可以删掉。This solution caused a challenge with spaces for me (still needed them), then I gave
str.split(/\b/)
a shot and all is well. Spaces are output in the array, which won't be hard to ignore, and the ones left after punctuation can be trimmed out.