当需要封装
标记或表情符号冒号sintaxe时,我需要一个正则表达式来拆分字符串。
示例:
"hello here comes emoji :grinning: and a line break <br> one more emoji :heart:"
我想完成的是一个像这样的数组:
[
"hello here comes emoji",
":grinning:",
"and a line break",
"<br>",
"one more emoji",
":heart:"
]
我有正则表达式可以单独执行此操作:
分割为表情符号split(/(:[^\s:]+(?:::skin-tone-[2-6])?:)/)
在br split(/(<br>)/g)
上拆分
我想要的是一种将两者结合在一起的方法。
答案 0 :(得分:2)
您可以使用|
交替运算符加入模式:
/\s*(:[^\s:]+(?:::skin-tone-[2-6])?:|<br>)\s*/
请注意,我在两边都添加了\s*
来修剪空白。
JS演示:
var s = "hello here comes emoji :grinning: and a line break <br> one more emoji :heart:";
var reg = /\s*(:[^\s:]+(?:::skin-tone-[2-6])?:|<br>)\s*/;
console.log(s.split(reg).filter(x => x.trim().length !=0 ));