正则表达式不适用于混合符号和连字符

时间:2014-05-15 12:23:29

标签: regex

我需要创建一个如下所示的正则表达式验证规则:

  1. 仅包含字母数字

  2. 可以-_/

  3. 开头可以有一个空格,最后可以有很多

  4. 可以混合符号

  5. 例如:

    aaa-bbb/ccc
    aaa
    1223/aaa-bbb 
    aaa-bbb-ccc
    

    我尝试使用以下代码,它不适用于混合符号和-。知道如何处理吗?

    @"^((?:/[a-za-z0-9]+)+/?|/?(?:[a-za-z0-9]+/)+)[a-za-z0-9]*$"
    

2 个答案:

答案 0 :(得分:1)

此正则表达式适用于您:

/^ ?[a-zA-Z0-9_\/-]+ *$/gm

Demo。这样做可以完全满足你的要求。

答案 1 :(得分:1)

Here是对你的正则表达式的分析。正如你所看到的那样,它太复杂了,远不及你想要的东西。

假设我正确地解释了你的条件,那么你的基本正则表达应该看起来像:

@"^[a-zA-Z0-9/_-]+$"

就是这样。它仅包含字母数字,还允许-_/,允许使用混合符号。我担心我在条件3中不知道你的意思,但可能只是在\s?^之后\s*之后添加$