2011-02-11 153 views
0

在我的Rails應用程序中我需要驗證一個字符串,該字符串在創建時不能有其第一個字符爲空或由任何特殊字符組成。字符串第一個字符的正則表達式

例如:「文件」和「%文件」無效。你知道我應該使用哪種正則表達式嗎?

謝謝!

回答

3

下面的正則表達式將只匹配「_」:

^\w 

要限制只能是字母或數字:

^[0-9a-zA-Z] 

^在正則表達式中具有特殊含義,當它位於字符類([...])之外時,它與字符串的開始匹配(沒有實際匹配任何字符)。

如果你想匹配所有無效的字符串,你可以放置一個^字符類來否定它的裏面,所以以前的表述應該是:

^[^\w] 

^[^0-9a-zA-Z] 
+0

另外,`[^ \ w]`等同於`\ W`。 – 2011-02-11 20:07:45

0

正則表達式

^[^[:punct:][:space:]]+ 

應該做你想做的。對於Ruby提供的正則表達式和POSIX類支持,我不是100%確定的,所以你的里程可能會有所不同。如果字符串的第一個字母是字母,數字或

1

好交互式地嘗試Ruby正則表達式的地方是Rubular。我給出的鏈接顯示了@Dave G給出的答案以及一些測試示例(乍一看似乎起作用)。你可以擴展這些例子來進一步說服你自己。

相關問題