如何编写正则表达式

时间:2013-02-17 16:31:41

标签: regex

我想用这种格式写一个表达式,两个字母和三个数字,例如。 TT234

([A-Z]2+[0-9]+) 

以上是我写的,但我收到了错误。有人可以对此发表评论吗?

让我改写我的问题,基本上我在.htaccess中写一个重写url参数约束

RewriteEngine On # Turn on the rewriting engine 
RewriteRule ^test/(home|member|admin)/([A-Z]{2}[0-9]{3})/(xml|json)$ localhost/username/index.php?type=$1&id=$2&format=$3 [L] 
RewriteRule ^test/.*$ localhost/username/error.php [L]

现在我在将正则表达式更改为xmlParseEntityRef: no name之后收到此错误([A-Z]{2}[0-9]{3}),尽管它确实检查了参数。

3 个答案:

答案 0 :(得分:1)

正则表达式有不同的语法。以下是如何在POSIX扩展正则表达式中执行所需操作:

[A-Z]{2}[0-9]{3}

答案 1 :(得分:1)

您的正则表达式匹配一个大写的ASCII字母,一个或多个“2”,后跟至少一个数字。

E.g:

  
      
  • A2123456788990
  •   
  • Z20
  •   
  • 如果您想准确指定2个字母,则不应使用量词+,您可以使用{2}

  • 如果你写一个“2”,那么它匹配文字“2”

  • 对于数字相同,如果您想匹配3位数,请写一个{3}而不是+

  • 根据您的口味和方法,您还需要锚定您的正则表达式,否则您将获得部分匹配。

    当文本只包含此字符串时,您可以使用^$作为字符串的开头和结尾

    ^[A-Z]{2}[0-9]{3}$
    

    如果您想在更大的字符串中找到此模式,请使用 Wordboundaries

    \b[A-Z]{2}[0-9]{3}\b
    

答案 2 :(得分:0)

试试这样:

([A-Z]{2}[0-9]{3})