【问题标题】:Regex: match at least 3 characters in a string in specific order正则表达式:以特定顺序匹配字符串中的至少 3 个字符
【发布时间】:2017-07-24 09:35:53
【问题描述】:

如何在给定的字符串中进行搜索,以便捕获每 3 个(或更多)字符 ordered 巧合?我正在使用它在 HTML 搜索输入中应用一些条件限制...... 到目前为止我最好的尝试:

/[deleted]{3,}/g

我需要“del”、“ele”、“let”、“ete”或“ ted" 被捕获...但也有 "dele"、"eted" 甚至完整的 "deleted >”。前面的正则表达式可以解决问题,但现在的问题是字符的顺序,因为它还捕获了诸如“ltd”或“eded”之类的字符串,它们不在用词和不应该的顺序。

有什么帮助吗?

提前致谢。

【问题讨论】:

  • 为什么是正则表达式。检查子字符串。在 JS 中'deleted'.includes(inputString)。在 PHP 中strpos('deleted', $inputString) !== false
  • 你想做什么?阻止用户搜索“已删除”?
  • @Tushar,strpos 解决方案不会让我做“至少 3 个字符”的限制......
  • 要添加限制,您可以查看length
  • @andcl 你需要像https://regex101.com/r/KkJeho/8这样的regx

标签: php regex string


【解决方案1】:

好的,我终于找到了一个考虑到所有限制的解决方案。 这是我的误解。对不起。 但无论如何感谢所有回复和 cmets:

在发布问题之前,我从(我认为的)@Tushar 在他的第一条评论中建议的 PHP 解决方案开始:

strpos('deleted', $inputString) !== false

但由于它没有按预期工作,我选择了正则表达式。问题是我在问题之前真正测试过的是:

strpos($inputString, 'deleted') !== false

我交换了 'haystack' 和 'needle',导致不需要的结果,所以我最终在 stackoverflow 中询问... 总而言之,@Tushar 的解决方案是绝对正确的。归功于他。 谢谢老哥。

【讨论】:

    猜你喜欢
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    相关资源
    最近更新 更多