Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Preg_match_始终捕获多个PHP_Php_Regex - Fatal编程技术网

Preg_match_始终捕获多个PHP

Preg_match_始终捕获多个PHP,php,regex,Php,Regex,我希望使用preg\u match\u all()捕获的格式: 12:00 10:00 上午10点 下午13点 晚上8点 上午7点 1830年 下午2时15分 上午9时45分 到目前为止,我拥有的正则表达式: /((\d{1,2}|\d{4})(.\d{1,2}))(am|pm)*/i 非常感谢您的帮助,我似乎无法用当前的正则表达式捕获5和6。如何: /^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i 说明: / : regex

我希望使用
preg\u match\u all()
捕获的格式:

  • 12:00
  • 10:00
  • 上午10点
  • 下午13点
  • 晚上8点
  • 上午7点
  • 1830年
  • 下午2时15分
  • 上午9时45分
到目前为止,我拥有的正则表达式:

/((\d{1,2}|\d{4})(.\d{1,2}))(am|pm)*/i
非常感谢您的帮助,我似乎无法用当前的正则表达式捕获5和6。如何:

/^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i
说明:

/                   : regex delimiter
  ^                 : begining of string
    (               : capture group 1
      \d{1,2}       : one or two digit
    )               : end group 1
    (               : capture group 2
      [.:]?         : optional . or :
      \d{1,2}       : one or two digit
    ),              : end group 2 otional
    (am|pm)?        : am or pm optional
  $                 : end of string
/i                  : regex delimiter with caseinsensitive flag
那么:

/^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i
说明:

/                   : regex delimiter
  ^                 : begining of string
    (               : capture group 1
      \d{1,2}       : one or two digit
    )               : end group 1
    (               : capture group 2
      [.:]?         : optional . or :
      \d{1,2}       : one or two digit
    ),              : end group 2 otional
    (am|pm)?        : am or pm optional
  $                 : end of string
/i                  : regex delimiter with caseinsensitive flag
那么:

/^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i
说明:

/                   : regex delimiter
  ^                 : begining of string
    (               : capture group 1
      \d{1,2}       : one or two digit
    )               : end group 1
    (               : capture group 2
      [.:]?         : optional . or :
      \d{1,2}       : one or two digit
    ),              : end group 2 otional
    (am|pm)?        : am or pm optional
  $                 : end of string
/i                  : regex delimiter with caseinsensitive flag
那么:

/^(\d{1,2})([.:]?\d{1,2})?(am|pm)?$/i
说明:

/                   : regex delimiter
  ^                 : begining of string
    (               : capture group 1
      \d{1,2}       : one or two digit
    )               : end group 1
    (               : capture group 2
      [.:]?         : optional . or :
      \d{1,2}       : one or two digit
    ),              : end group 2 otional
    (am|pm)?        : am or pm optional
  $                 : end of string
/i                  : regex delimiter with caseinsensitive flag

您可以使用此正则表达式:

/\b(\d{1,2})([.:]?\d{1,2})?([ap]m)?\b/i

正则表达式的分解:

\b       # word boundary
\d{1,2}  # match 1 or 2 digits for hours
[.:]?    # match *optional* dot or colon i.e. minute separator
\d{1,2}  # match 1 or 2 digits for minutes
([ap]m)? # match *optional* am/pm
\b       # word boundary

您可以使用此正则表达式:

/\b(\d{1,2})([.:]?\d{1,2})?([ap]m)?\b/i

正则表达式的分解:

\b       # word boundary
\d{1,2}  # match 1 or 2 digits for hours
[.:]?    # match *optional* dot or colon i.e. minute separator
\d{1,2}  # match 1 or 2 digits for minutes
([ap]m)? # match *optional* am/pm
\b       # word boundary

您可以使用此正则表达式:

/\b(\d{1,2})([.:]?\d{1,2})?([ap]m)?\b/i

正则表达式的分解:

\b       # word boundary
\d{1,2}  # match 1 or 2 digits for hours
[.:]?    # match *optional* dot or colon i.e. minute separator
\d{1,2}  # match 1 or 2 digits for minutes
([ap]m)? # match *optional* am/pm
\b       # word boundary

您可以使用此正则表达式:

/\b(\d{1,2})([.:]?\d{1,2})?([ap]m)?\b/i

正则表达式的分解:

\b       # word boundary
\d{1,2}  # match 1 or 2 digits for hours
[.:]?    # match *optional* dot or colon i.e. minute separator
\d{1,2}  # match 1 or 2 digits for minutes
([ap]m)? # match *optional* am/pm
\b       # word boundary


当然,如果只有代码答案,没有解释,那么就有太多的正则表达式问题。因为他们从不理解它,只会复制粘贴它,所以对于每个正则表达式,他们必须问一个新问题。(但我不必告诉你,因为我已经做了很多次了!)@anubhava你能解释一下这个正则表达式吗?我在回答中添加了一些正则表达式的解释。是否总是需要两个人来要求你解释你的代码/你改变了什么?不,先生,没有这样的规则。我在工作中,也在工作和编码之间,我的注意力集中在这方面。此外,我总是有一个regex101演示链接在答案中,里面有详细的解释。如果只有代码答案,没有解释,那么核心问题就太多了。因为他们从不理解它,只会复制粘贴它,所以对于每个正则表达式,他们必须问一个新问题。(但我不必告诉你,因为我已经做了很多次了!)@anubhava你能解释一下这个正则表达式吗?我在回答中添加了一些正则表达式的解释。是否总是需要两个人来要求你解释你的代码/你改变了什么?不,先生,没有这样的规则。我在工作中,也在工作和编码之间,我的注意力集中在这方面。此外,我总是有一个regex101演示链接在答案中,里面有详细的解释。如果只有代码答案,没有解释,那么核心问题就太多了。因为他们从不理解它,只会复制粘贴它,所以对于每个正则表达式,他们必须问一个新问题。(但我不必告诉你,因为我已经做了很多次了!)@anubhava你能解释一下这个正则表达式吗?我在回答中添加了一些正则表达式的解释。是否总是需要两个人来要求你解释你的代码/你改变了什么?不,先生,没有这样的规则。我在工作中,也在工作和编码之间,我的注意力集中在这方面。此外,我总是有一个regex101演示链接在答案中,里面有详细的解释。如果只有代码答案,没有解释,那么核心问题就太多了。因为他们从不理解它,只会复制粘贴它,所以对于每个正则表达式,他们必须问一个新问题。(但我不必告诉你,因为我已经做了很多次了!)@anubhava你能解释一下这个正则表达式吗?我在回答中添加了一些正则表达式的解释。是否总是需要两个人来要求你解释你的代码/你改变了什么?不,先生,没有这样的规则。我在工作中,也在工作和编码之间,我的注意力集中在这方面。此外,我总是有regex101演示链接的答案,里面有详细的解释。一个好的解释怎么样?似乎你知道的足够多,可以给OP一个很好的解释,这样他就可以理解你的正则表达式,甚至可以自己编写下一个正则表达式!好好解释一下怎么样?似乎你知道的足够多,可以给OP一个很好的解释,这样他就可以理解你的正则表达式,甚至可以自己编写下一个正则表达式!好好解释一下怎么样?似乎你知道的足够多,可以给OP一个很好的解释,这样他就可以理解你的正则表达式,甚至可以自己编写下一个正则表达式!好好解释一下怎么样?似乎你知道的足够多,可以给OP一个很好的解释,这样他就可以理解你的正则表达式,甚至可以自己编写下一个正则表达式!这是真的吗?
1830
?preg\u match\u all用于一个freetext字段,最终用户在该字段中为多个内容写入许多时间变化。我使用正则表达式向日期字段填充新添加的时间值。”1830(英国时间)存在于多个实例中。这是真的吗?
1830
?preg_match_all用于自由文本字段,最终用户在该字段中为多个内容写入许多时间变化。我使用正则表达式向日期字段填充新添加的时间值。”1830(英国时间)存在于多个实例中。这是真的吗?
1830
?preg_match_all用于自由文本字段,最终用户在该字段中为多个内容写入许多时间变化。我使用正则表达式向日期字段填充新添加的时间值。”1830(英国时间)存在于多个实例中。这是真的吗?
1830
?preg_match_all用于自由文本字段,最终用户在该字段中为多个内容写入许多时间变化。我使用正则表达式向日期字段填充新添加的时间值。”1830年(英国时间)“”出现在多个实例中。