Php Symfony路由的Yaml正则表达式语法utf8

Php Symfony路由的Yaml正则表达式语法utf8,php,regex,symfony,yaml,Php,Regex,Symfony,Yaml,我有一个Symfony路由,在xml中显示如下: <route id="fos_user_resetting_reset" pattern="/reset/{username}"> <default key="_controller">FOSUserBundle:Resetting:reset</default> <requirement key="_method">GET</requirement> <r

我有一个Symfony路由,在xml中显示如下:

<route id="fos_user_resetting_reset" pattern="/reset/{username}">
    <default key="_controller">FOSUserBundle:Resetting:reset</default>
    <requirement key="_method">GET</requirement>
    <requirement key="username">%user_username%</requirement>
</route>
一般来说,这种方法工作正常,但是上面发布的正则表达式(user_username)抛出了一个我无法追溯的错误:

警告:preg_match():未知修饰符']'(500内部服务器错误)


这种行为很奇怪,因为我在这个文件中的所有其他正则表达式都可以工作,只有“user\u username”表达式失败。

preg\u匹配在哪里?这通常意味着在表达式unescaped中使用了分隔符。请尝试使用通常用作分隔符的
[a-zA-Z0-9s'\-@.\u\\\\\\\\\]+
(escape
)。另外,您的错误是
未知修饰符']'
-这是
#
的下一个错误。非常感谢Jonny,他工作得很有魅力。我不知道“#”被用作分隔符-我不太适合正则表达式。@user3746259:这真的不是你的错;我甚至会说这是SF2中的一个bug……然而,这个bug很可能不会被修复。好的,但一般来说,我为所有url需求创建一个regex.yml文件的方法,即每个模式都可以在更多url模式中重用是一个好方法?preg_match在哪里?这通常意味着在表达式unescaped中使用了分隔符。请尝试使用通常用作分隔符的
[a-zA-Z0-9s'\-@.\u\\\\\\\\\]+
(escape
)。另外,您的错误是
未知修饰符']'
-这是
#
的下一个错误。非常感谢Jonny,他工作得很有魅力。我不知道“#”被用作分隔符-我不太适合正则表达式。@user3746259:这真的不是你的错;我甚至会说这是SF2中的一个bug…然而,这个bug很可能不会被修复。好的,但一般来说,我为所有url需求创建一个regex.yml文件的方法是一个好方法,即每个模式可以在更多url模式中重用?
parameters:
   # user
   user_username:      "[a-zA-Z0-9s'\-@._#]+"

   #token
   general_token:      "[a-zA-Z0-9\-_=]+"