php - 正则表达式的问题

标签 php regex

我有以下正则表达式:

/[0-9#%@_$&!?^\/|*<>]+/i

它不应该接受信件。如果一开始没有输入字母,它会接受字母。

例如: 如果我输入“123e”,它会找到一个匹配项(但不应该,因为有一个字母)

我的正则表达式有什么问题?

谢谢

最佳答案

您的正则表达式会检查您指定的列表字符中是否有一个或多个 -- 123e 也是如此。

它不检查字符串是否只包含那些


你可能想编辑你的正则表达式,所以它看起来像这样:

/^[0-9#%@_$&!?^/|*<>]+$/i

我在其中添加了以下两个 anchors :

  • ^ 表示“字符串/行的开始
  • $ 表示“字符串/行结束

这意味着正则表达式将检查您的字符串是否以您的字符之一开头、以其中一个字符结尾并包含这些字符。

关于php - 正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771576/

相关文章:

php - mysql 请求逻辑

php - 排序记录编号,然后按字母顺序排序

Javascript:正则表达式用于替换文本中的单词而不是单词的一部分

php - 如何保存为 HTML 片段,而不是完整的 DOM 模型

javascript - 与使用量化替代方案的较短正则表达式符号相比,展开循环有什么优势?

regex - Go:一次通过正则表达式 FindAll 和 ReplaceAll

php - Zend Framework 2 TableGateway 返回空结果集

php - Redis PHP session 不会持续存在

java 字符串分词器

PHP 按空格分割搜索栏关键词