如何为后跟特定字符串的日期编写 preg_match?
How to write preg_match for a date followed by specific string?
我想从多个 HTML 文档中提取日期。日期始终遵循以下模式:
- 从月份的三个字母开始,第一个字符大写
即一月
- 日期的两位数字字符,即 09
- 逗号作为分隔符
- 年份的四位数字字符,即 2022 年。
完整日期示例为 2022 年 1 月 9 日
我只想提取那些包含在 span 标签中的日期。所以,完整的模式是
<span>Jan 09, 2022</span>
我不擅长写作preg_match。谁能帮帮我?
<span>(\w{3} \d{1,2}, \w{4})<\/span>
\w
是集合 [a-zA-Z0-9_]
的 meta-character。
{3}
表示三次。
\d
是集合 [0-9]
的 meta-character。
{1,2}
表示一次或两次。
试一试https://regex101.com/r/tNRa73/1
$pattern = '/<span>(\w{3} \d{1,2}, \w{4})<\/span>/';
preg_match(
$pattern,
$html,
$matches // <-- The results will be added to this new variable.
);
$matches[1]; // The date will be in the first index because it was
// the first "capture group" i.e set of parens.
// If you expect multiple dates in one HTML document, then use:
preg_match_all(
$pattern,
$html,
$matches
);
$matches[1]; // Now, the first index is an array of matches of
// the first "capture group".
我想从多个 HTML 文档中提取日期。日期始终遵循以下模式:
- 从月份的三个字母开始,第一个字符大写 即一月
- 日期的两位数字字符,即 09
- 逗号作为分隔符
- 年份的四位数字字符,即 2022 年。
完整日期示例为 2022 年 1 月 9 日
我只想提取那些包含在 span 标签中的日期。所以,完整的模式是
<span>Jan 09, 2022</span>
我不擅长写作preg_match。谁能帮帮我?
<span>(\w{3} \d{1,2}, \w{4})<\/span>
\w
是集合 [a-zA-Z0-9_]
的 meta-character。
{3}
表示三次。
\d
是集合 [0-9]
的 meta-character。
{1,2}
表示一次或两次。
试一试https://regex101.com/r/tNRa73/1
$pattern = '/<span>(\w{3} \d{1,2}, \w{4})<\/span>/';
preg_match(
$pattern,
$html,
$matches // <-- The results will be added to this new variable.
);
$matches[1]; // The date will be in the first index because it was
// the first "capture group" i.e set of parens.
// If you expect multiple dates in one HTML document, then use:
preg_match_all(
$pattern,
$html,
$matches
);
$matches[1]; // Now, the first index is an array of matches of
// the first "capture group".