【发布时间】:2022-01-24 10:09:10
【问题描述】:
我有以下正则表达式来匹配文件夹名称。我想要得到的是用字母、数字、点、连字符、下划线和正斜杠匹配字符串,这样字符串不需要以正向存储或点开始或结束:
/^([a-zA-Z0-9_][a-zA-Z0-9.\/_\-])[.a-zA-Z0-9_-]{1,253}[^(.|/|\\)]$/
我需要匹配文件夹名称foo.com/sdsds。
但是正则表达式不匹配/。
【问题讨论】:
-
您尝试在正则表达式中实施哪些规则?
[^(.|/|\\)]肯定是用户错误,因为这并不表示“字符串不应以”结尾。此外,此模式不会让您的代码编译,因为该模式中使用的/不会在 PHP 中的/-delimited 正则表达式中转义。 -
/ 已被转义。路径不需要以点、/ 或 \ 结尾
-
我想要得到的是用字母、数字、点、连字符、下划线和正斜杠匹配字符串,这样字符串不需要以正向存储或点开始或结束
标签: regex preg-replace