2014-03-25 34 views
1

我試圖從軌道後拉的用戶名。我認爲這樣做的最好方法是使用正則表達式,並從@拉到下一個空格字符,這會給我用戶名。正則表達式從角色獲得由空格

如字符串:

'@stackoverflow is good for help' 

我將能夠從@拉至下一個空白字符給我串'stackoverflow'

我的正則表達式的技能是有點欠缺,所以任何幫助將不勝感激。

謝謝。

+0

很有趣的問題! +1 – Pavan

回答

2

您可以使用\S匹配任何非空白字符,例如:

(?<[email protected])\S* 

將匹配其中@字符後立即出現零個或多個非空白字符的序列。 (?<=…)創建了一個lookbehind斷言,所以@將不會包含在比賽中。

Demonstration

備選地,可以使用:

@(\S*) 

這將匹配一個@,隨後的零個或多個非空白字符,在組1

Demonstration

捕獲
+0

謝謝工作完美。 – jckly

1

這個怎麼樣:

regex = /@(\S*)/ 

\S這裏匹配所有非空白字符。

+0

這工作謝謝。但它返回@和字符串一樣。 – jckly

+0

@jckly @後面的所有內容都在第1組中捕獲,因此您必須提取該組(或者只是使用'[1 ..- 1]') –

+0

這樣的子字符串。 '@asdf asdfg'.match(/ @(\ S *)/)[1] =>'asdf'' –