我需要一个正则表达式,该表达式仅允许一个星号或以点和一个星号分隔的作品。例如:
test.test = OK
test.test* = OK
* = OK
. = NO
_ = NO
test.* = NO
test.test = OK
test.test2 = OK
test* = OK
te*st = NO
test*.test = NO
这是我到目前为止所做的
^[a-z0-9*.\-_\.:]+$
允许的非字符是点和一个星号 允许使用的字符是小写字母
答案 0 :(得分:2)
您可以使用此
DoStuff(int)
^[a-zA-Z0-9]+?\.?[a-zA-Z0-9]+?\*?$|^\*$
-字符串的开头。^
-一次或多次匹配任何字母或数字(惰性模式)。(?使其为可选)[a-zA-Z0-9]+?
-匹配\.?
。.
-匹配\*?
。*
-字符串结尾。$
-交替出现。|
-匹配^\*$
。让我知道我是否错过任何情况。
答案 1 :(得分:2)
所以您想要:
^((\*)|([a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)*\*?)$
请注意,[a-zA-Z0-9]+
应该适合您的真正意思。在我的回答中,它只是一个或多个字母数字字符。