【问题标题】:PHP regular expression match any character with space tab carriage return and new lines [duplicate]PHP正则表达式匹配任何带有空格制表符回车和换行符的字符[重复]
【发布时间】:2013-12-03 19:48:59
【问题描述】:

如何匹配最少 10 个字符和最多 4000 个字符的文本,并且该文本可以是任何字符。此外,我需要接受空格制表符回车和换行符。

我试过了:

"/.{10,4000}$/"

但这没有用!例如,我认为点不包括回车。

那么有人可以帮我解决这个问题吗?

对不起,任何拼写错误,我是葡萄牙人。

【问题讨论】:

  • 您是否出于特定原因回避strlen
  • 不,这实际上是一个好问题!我认为正则表达式会更可靠..

标签: php regex expression match


【解决方案1】:

请注意,点将匹配 任何 字符。那么为什么不这样做呢:

if(strlen($text) >= 10 && strlen($text) <= 4000) {
    echo "match!";
}

【讨论】:

  • +1 表示在不需要的地方不使用正则表达式
  • 我接受了这个 AbraCadaver 的回答,因为它更具体地针对问题,尽管您的回答更有效
【解决方案2】:

s 所以. 匹配换行符。

"/^.{10,4000}$/s"

【讨论】:

  • 您还需要在字符串锚点 ^ 的开头添加一个字符串,否则您只是匹配最后 4k 个字符,字符串可能会更长。
  • 是的,我以为它已经在里面了 :)
  • 我会接受这个答案,因为它更具体到问题,虽然 jszobody 的答案更有效
【解决方案3】:

试试这个模式/^.{10,4000}$/s 注意“s”修饰符和锚点“^”

【讨论】:

  • @John Doyle,感谢您的评论,我相信我的答案与 OP 接受的答案相符。接受的答案恰好在我编辑我的时候发布。
猜你喜欢
  • 2020-09-02
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多