【问题标题】:Need to alter regex to allow for special characters需要更改正则表达式以允许特殊字符
【发布时间】:2009-06-10 09:12:46
【问题描述】:

我的 htaccess 中有以下代码,它允许用户 ID 只能是字母数字并包含下划线和连字符:

RewriteRule ^([A-Za-z0-9_-]+)$ profile.php?ID=$1 [QSA,L]

我最近从一个允许用户名包含特殊字符的社交网络平台导入了 1000 多个用户名,但我将用户名迁移到的这个新平台不会。

如何编辑此正则表达式以包含以下特殊字符:

[ ] = , ? & @ ~ { } + ' . * ! ™ ` (and spaces).

任何帮助将不胜感激。

【问题讨论】:

  • 每个人似乎都在假设“特殊字符”的意思是“正则表达式元字符”,但我不太确定。世界上有很多人认为“特殊字符”意味着标点符号和空白字符。我很确定这里就是这种情况。

标签: regex .htaccess special-characters


【解决方案1】:
RewriteRule ^([\[\]=,\?&@~\{\}\+'\.*!™`A-Za-z0-9_-]+)$ profile.php?ID=$1 [QSA,L]

相当不言自明。只需包含所有字符,如果它们是正则表达式特殊字符,则使用转义符。

【讨论】:

  • 这并不完全正确 - 字符类对类中的特殊字符与类外的特殊字符有不同的定义 - 其中一些 \ 是多余的。
  • 是的,多余的,但仍然正确。如果需要,可以更轻松地走出课堂。
猜你喜欢
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多