2014-01-27 17 views
0

識別哈希標籤的字要找到已被標記在一個串的字和一個變量設置爲標籤我如何在一個字符串

message = '#Identifier with some text' 
tag = message.scan(/#\w+/) 

這將返回一個標記數組。我期待在字符串中只有1個標記的單詞,所以我希望它返回一個單詞而不是數組。

文本一般不是很長,因爲它正在通過短信發送。功能

效率和速度顯然是NB。

感謝您的幫助。

回答

3

執行如下uusing String#[]

如果Regexp被提供時,返回字符串的匹配部分。如果捕獲遵循正則表達式(可能是捕獲組索引或名稱),則遵循正則表達式,而是返回MatchData的組件。

message = '#Identifier with some text' 
message[/#\w+/] # => "#Identifier" 

只需記住:\w+意味着[a-zA-Z0-9_]。如果你有更多的字符,然後#符號使用明確的字符類。同樣假設-,+等也可以存在,所以使用顯式字符類[a-zA-Z0-9_+-]作爲示例 - message[/#[a-zA-Z0-9_+-]+/]

+2

不要使用'[a-zA-Z0-9 _- +]'。雖然它在這個例子中起作用,但它在語法上不正確。 '''在'[']'裏面有特殊的含義,這就等於'_ .. +'。在這種特殊情況下,你很幸運,因爲'_ .. +'範圍不存在,但使用相同的語法並不總是安全的。相反*總是*將'-'作爲保證自動轉義爲'-'的最後一個字符,而不是範圍字符。 –

+0

@theTinMan謝謝你讓我知道這一點。如果我能和你一起工作,我保證可以向你學習很多東西。你有一個巨大的知識.. –