我需要打破一个字符串:
示例:
Hello,_have a beer_or a sandwich.$Bye => Hello,
_have a beer
_or a sandwich.
*Bye
$Hello,_have a beer,$or a sandwich.*Bye => $Hello,
_have a beer,
$or a sandwich.
*Bye
我想出了这个正则表达式:
/_.*?(?=[_\*\$])|\*.*?(?=[_\*\$])|\$.*?(?=[_\*\$])/g
问题是:
* _ $
开始。 (在第一个示例中,不包括Hello
。)* _ $
。 (在两个示例中均未包含*Bye
)我已尝试为第一部分添加^.*?(?=[_\*\$])
,但随后以* _ $
开头的部分不会被选中。
答案 0 :(得分:1)
你可以使用带有所需字符的正lookeahead进行拆分。
var string = '$Hello,_have a beer,$or a sandwich.*Bye_ ',
splitted = string.split(/(?=[$_*])/);
console.log(splitted);