【问题标题】:Laravel regex for multiple patterns does not work?用于多种模式的 Laravel 正则表达式不起作用?
【发布时间】:2019-07-25 03:43:03
【问题描述】:

我希望我的正则表达式模式只允许来自伯恩茅斯的电子邮件具有 > ac.uk 域 以及来自 nhs 的带有 > .net 或 .uk 的电子邮件 但是我很难让它工作,我尝试将分隔符添加到正则表达式中但它不起作用,并尝试删除 'i' 但这是必需的。

正则表达式:'email' => ['required', 'string', 'email', 'max:255', 'regex:/(.*)@(bournemouth)\.ac.uk/i | @(nhs)\.net|uk/i', 'unique:users'],

【问题讨论】:

  • 试试'regex:/.*@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i' 或只是'regex:/@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

标签: php regex laravel


【解决方案1】:

我建议使用

'regex:/.*@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

或者

'regex:/@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'

详情

  • @ - 一个 @ 字符
  • (?:bournemouth\.ac\.uk|nhs\.(?:net|uk)) - 非捕获组匹配
    • bournemouth\.ac\.uk - bournemouth.ac.uk 字符串
    • | - 或
    • nhs\.(?:net|uk) - nhs. 后跟 netuk

注意文字点被转义,替代之间的模式内没有空格,i 标志仅设置在正则表达式的末尾。

【讨论】:

  • 好吧,谢谢你打破它,我对这些正则表达式感到不知所措
猜你喜欢
  • 1970-01-01
  • 2013-09-08
  • 2019-10-27
  • 2015-06-19
  • 2014-04-21
  • 2016-08-01
  • 2015-03-27
  • 1970-01-01
  • 2013-02-27
相关资源
最近更新 更多