2016-04-12 11 views
2

正規表現は特定の文字の後にすべての文字列を検索します。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

+0

'のstring.Split( '#'))(ポップ'ハッシュした後、あなたに返信用 – adeneo

+0

おかげですべてのものを取得し、Iしようとしましたが、日文cksiejeが正しくない結果を返しました。https://jsfiddle.net/udugpnyb/ – user1575921

+1

これは混乱しています。これをやろうとしていますか?> https://jsfiddle.net/udugpnyb/1/ – adeneo

答えて

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❤️", "日文"] 
+1

これはうまくいきます!ありがとう – user1575921

関連する問題