たとえば、次のように # が特殊な単語を表すとします。
今日は #動物園 へ #素敵な旅行 をしました。#楽しい時間を過ごさせて頂きました。RegExを使用すると、次のようなものを抽出できますか
#lovely#zoo#wonderful
たとえば、次のように # が特殊な単語を表すとします。
今日は #動物園 へ #素敵な旅行 をしました。#楽しい時間を過ごさせて頂きました。RegExを使用すると、次のようなものを抽出できますか
#lovely#zoo#wonderful
使用するstring.match
var str = "I took a #lovely trip to the #zoo today. We had a #wonderful time"
str.match(/#\w+/g); // #lovely,#zoo,#wonderful
必要に応じて、正規表現を微調整して数字や記号を含めることができます。
/#[\w\d]+/g
文字と数字の場合、/#\S+/g
空白以外のものの場合。
編集:g
最後にあるということは、最初の一致だけでなく、すべての一致が見つかることを意味することを追加します。
正規表現の答えがあります。そして、split
答えがあります。以下の作品:
var s = 'I took a #lovely trip to the #zoo today. We had a #wonderful time.'
var tags = s.split( '#' ).map( function ( str ) {
return str.split( ' ' )[ 0 ]
} )
// Now, tags[0] is not good, so let's splice it
tags.splice( 0, 1 )
console.log( tags ) // ['lovely', 'zoo', 'wonderful']
つまり、正規表現のソリューションよりも少し冗長です。私はそれがよりエレガントだと思います。
PS: ご想像のとおり、私は正規表現が好きではありません!