嗨,我在Silex路线中有一个变量,我们只允许使用字母数字值
->assert('hash','\w+')
Run Code Online (Sandbox Code Playgroud)
我想在变量中也允许一个点,但我编辑这个正则表达式的努力失败了.非常感谢,谢谢!
尝试使用字符类([…]),如下所示:
[\w.]+
Run Code Online (Sandbox Code Playgroud)
例如:
->assert('hash','[\w.]+')
Run Code Online (Sandbox Code Playgroud)
尝试
->assert('hash', '[a-zA-Z0-9.]+')
Run Code Online (Sandbox Code Playgroud)
为什么不[\w.]呢?
您将问题标记为PHP,因此我认为本手册适用.它在那里读
Run Code Online (Sandbox Code Playgroud)\w any "word" character
和
"单词"字符是任何字母或数字或下划线字符,即任何可以成为Perl"单词"一部分的字符.字母和数字的定义由PCRE的字符表控制,如果发生特定于语言环境的匹配,则可能会有所不同.例如,在"fr"(法语)语言环境中,一些大于128的字符代码用于重音字母,并且这些字符代码由\ w匹配.
毕竟\w可能与äöüß相匹配......你不知道.
因为它读取散列,您可能也想尝试
->assert('hash', '[a-fA-F0-9.]+')
Run Code Online (Sandbox Code Playgroud)
只接受十六进制数字.而不是G或Z或......
| 归档时间: |
|
| 查看次数: |
8582 次 |
| 最近记录: |