2013-04-10 89 views
-1

我需要驗證在TCL的名稱,也可以是:TCL的regexp名稱驗證

字母(大寫和小寫)

編號

任何這些符號: 「_」 下劃線 「 - 」 破折號 「/」 斜線

+3

你可以自己想出什麼? – 2013-04-10 15:01:28

+0

Tcl中使用的正則表達式語法[廣泛記錄](http://www.tcl.tk/man/tcl8.6/TclCmd/re_syntax.htm)。不要錯過[這個](http://whathaveyoutried.com)。 – kostix 2013-04-10 15:40:13

+0

呃,你知道有(電腦)語言來描述你做了什麼嗎?它被稱爲regexp。一些提示:所有較低字符:'[a-z]'。 – 2013-04-10 15:51:56

回答

2

我會用:

regexp {^[\w/-]+$} $string 
+2

你不需要逃避斜線。 – Loamhoof 2013-04-10 15:04:47

+0

哦,對,即使沒有逃脫,它也能正常工作! – Jerry 2013-04-10 15:10:09

1
/^[\w-\/]+$/ 

\w是字母,數字和下劃線。 Source

+0

在Tcl中不起作用('/'不是特殊字符)。閱讀_whole_問題。 – 2013-04-11 14:14:21

+0

什麼不行?使用'/'作爲分隔符?這只是寫一個正則表達式的一種方式。我希望OP能夠做一點研究,至少知道他使用什麼口味的分界符。對不起,如果我冒犯了你。不能幫助它,我是一個樂觀主義者。 – Loamhoof 2013-04-11 15:03:57

2

而其他的答案就可以解決問題,這裏的答案如何,你可以把它寫自己:

  • 該字符串應該只包含定義的字符:
    整個字符串必須匹配,所以在開始處添加約束條件:^(開始標記字符串的開始)和$結束。

  • 該字符串應該包含一個或多個的一些字符:
    [a-z]+指一個或多個字符從A到Z的範圍內(包括)。

  • 添加一些更多可能字符:^[a-zA-Z_0-9/-]+$
    (注意-是在結束,否則它定義的範圍)

瞧。你的正則表達式。