正则表达式在特定字符后找到所有字符串(包括表情符号,任何语言)

时间:2016-04-12 01:58:48

标签: javascript regex

正则表达式在特定字符后找到所有字符串。

var str = '#a#friend❤️ dleokfir #日文 cksieje';
- >
['a', 'friend❤️', '日文']
  

var str = '';
- >
[]

function getArr(str) {
  var re = /#([a-z0-9_\\pL_]+)/gi;
  var arr = [];
  // ..  get string after #
  str.replace(re, function( a,b ) {
    arr.push( b );
  });

  return arr;
}

getArr(str)

https://regex101.com/r/tJ3jM8/1

1 个答案:

答案 0 :(得分:2)

你可以使用这个否定的正则表达式:

/#([^#\s]*)/g

表示在输入中#之后匹配0或更多非空格或非哈希字符。

JS Fiddle

RegEx Demo

<强>代码:

var str = `#a#friend❤️ dleokfir #日文 cksieje`;

var re = /#([^#\s]*)/g; 
var m;
var matches=[];

while ((m = re.exec(str)) !== null) {
    matches.push(m[1]);
}

console.log(matches);
//=> ["a", "friend❤️", "日文"]