2015-10-13 83 views
1

我有問題在我的Rails應用程序中爲hashtag創建正則表達式。 這些話不應該是有效的:正則表達式沒有#標籤#

'aa#', 'b#b', 'ccc#', '12#', '#33', "asd ef", "aa aa", "33 22", "#aad dd", "!!!# assd", "#aa dd", "dd a#a" 

這些話應該是有效的(話只用一個字和無#:

'super', 'extra', 'bomba', 'slit!!', '[email protected]@b', 'a13b', 'db3a', 'a3' 

我現在的正則表達式:/#\s*/ - 這項工作,但沒有自由空間( 'ASD EF' 通過: - /)

+3

開始你真的需要爲這個正則表達式?爲什麼不簡單的字符串搜索'#'或空格? –

+1

你能提供你當前的正則表達式嗎 – Paddyd

+0

爲什麼你需要一個正則表達式而不是使用簡單的字符串搜索? – Victor

回答

2

試試這個:

^[^\s#']+$ 

將任何其他字符添加到而不是「有效」字符的字符類中。

+0

現在,我的代碼:'validates:hashtag,format:{without:/ [^ \ s#'] + /}'有效,但'super'這個字無效:/ – Kam

+1

@Kam我想你或者想要'/[^ \ s#'] + /'(不'不包括:'),但這只是一個猜測 - 我不熟悉該DSL – Bohemian

+0

當我用'aa#'和'asd ef'已驗證。它不應該是有效的。 – Kam

0

沒有測試過很多,但我會

(\w+(?!#)(?!\s+).)\w+