PHP使用正则表达式从字符串中提取内容
作者:互联网
我有以下字符串,我想从中提取“383-0408”,显然内容发生了变化但是部件号始终跟在字符串“Our Stk#:”之后,我怎样才能最优雅地从字符串中提取这些信息?
Microchip Technology Inc.
18 PIN, 7 KB FLASH, 256 RAM, 16 I/O
Mfr's Part #: PIC16F648A-I/SO
Our Stk #: 383-0408
解决方法:
你可以这样做:
<?php
$str = "Microchip Technology Inc.
18 PIN, 7 KB FLASH, 256 RAM, 16 I/O
Mfr's Part #: PIC16F648A-I/SO
Our Stk #: 383-0408";
if (preg_match('/Our Stk #: (\d*-\d*)/', $str, $matches)) {
echo $matches[1];
}
仅当您要查找的数字部分始终为数字形式时,此方法才有效. @ Richard86给出了一个更通用的解决方案,包含任意数量和任意数量的破折号,作为您问题的另一个答案.
编辑:
为了避免破折号周围没有数字的情况,正如@ Richard86在评论中所说,常规表达应该如下所示:
if (preg_match('/Our Stk #: (\d+-\d+)/', $str, $matches)) {
标签:str-replace,php,regex 来源: https://codeday.me/bug/20190730/1578465.html