Php 如何从长字符串中筛选值

Php 如何从长字符串中筛选值,php,regex,parsing,Php,Regex,Parsing,我需要从一个大段落中筛选出一个特定值 下面是一个示例字符串: TitleCore PHP编程Prentice Hall PTR核心系列作者Leon 阿特金森,Zeev Suraskieedition3,插图出版社诱惑大厅 专业人士,2004*ISBN01304634969780130463463*长度1072 页面对象计算机›网络›通用计算机/互联网/ 网页设计计算机/网络/通用计算机/ 编程/通用计算机/编程语言/通用 计算机/网络/通用电子图书PHP(计算机程序) 语言)网站网站/设计和nb

我需要从一个大段落中筛选出一个特定值

下面是一个示例字符串:

TitleCore PHP编程Prentice Hall PTR核心系列作者Leon 阿特金森,Zeev Suraskieedition3,插图出版社诱惑大厅 专业人士,2004*ISBN01304634969780130463463*长度1072 页面对象计算机›网络›通用计算机/互联网/ 网页设计计算机/网络/通用计算机/ 编程/通用计算机/编程语言/通用 计算机/网络/通用电子图书PHP(计算机程序) 语言)网站网站/设计和nbspExport引文BIBTEX 尾注:雷夫曼

首先,我需要提取这个值
ISBN013046369,9780130463463
,然后将上面的值过滤到
9780130463463

我有很多这样的段落。唯一的标识符是文本“ISBN”。

使用和模式,例如:

/ISBN\d+, (\d+)/

应该有用。此外,如果您也需要此数字,可以将第一个
\d+
括在括号中。

str_-ireplace('ISBN','isbn01304639')

工作示例,顺便说一句:&IDEOne版本(作为PHP脚本):我猜这些数字是这些书的ISBN-10s和ISBN-13s,因此第一个
\d+
应该是
[xX\d]+
@Niko:如果是这样,那么正确,应该将其更改为类。我对ISBN格式不太了解,所以如果允许使用非数字字符,应该修改它。@BradChristie。ISBN-10可能以
X
结尾(它是mod-11校验位,10表示为X)。ISBN-13永远是纯数字的。任何ISBN-10都有一个等效的ISBN-13(前缀为
978
并重新计算校验位),但并非所有ISBN-13都有等效的ISNB-10(一些较新的ISBN-13以
979
开头)。给出的示例的格式似乎是“ISBN[ISBN-10],[ISBN-13]”。因此Nico认为正则表达式应该允许字母
X
,这是正确的。