Php 获取文本中的字符串

Php 获取文本中的字符串,php,preg-match,Php,Preg Match,我似乎不知道如何从一个较大的块中获得所需的文本的某一部分。在解析电子邮件时,我需要能够在一个常规文本块中抓取一个介于:和a之间的字符串。下面是一个示例。我对preg_match有点了解,我想这就是答案,但似乎也无法实现。如果您能帮上忙,我们将不胜感激,因为在这里和谷歌搜索时都没有找到任何结果 对于GC3J26P:智慧湖II(传统) 我只需要:和开始括号之间的文本。谢谢您的帮助。既然您说您已经尝试过,但没有成功,请尝试以下内容: $str = "For GC3J26P: Wise Lake II

我似乎不知道如何从一个较大的块中获得所需的文本的某一部分。在解析电子邮件时,我需要能够在一个常规文本块中抓取一个介于:和a之间的字符串。下面是一个示例。我对preg_match有点了解,我想这就是答案,但似乎也无法实现。如果您能帮上忙,我们将不胜感激,因为在这里和谷歌搜索时都没有找到任何结果

对于GC3J26P:智慧湖II(传统)


我只需要:和开始括号之间的文本。谢谢您的帮助。

既然您说您已经尝试过,但没有成功,请尝试以下内容:

$str = "For GC3J26P: Wise Lake II (Traditional)";
preg_match('/(?<=:).*(?=\()/', $str, $str);
if ($str) echo $str[0];
$string = 'For GC3J26P: Wise Lake II (Traditional)'; 

preg_match('/\:(.*?)\(/', $string, $matches); 

echo $matches[0]; // : Wise Lake II (
echo $matches[1]; // Wise Lake II
$str=“对于GC3J26P:Wise Lake II(传统)”;

preg_match('/(?既然你说你已经试过了,但没有成功,试试这个:

$str = "For GC3J26P: Wise Lake II (Traditional)";
preg_match('/(?<=:).*(?=\()/', $str, $str);
if ($str) echo $str[0];
$string = 'For GC3J26P: Wise Lake II (Traditional)'; 

preg_match('/\:(.*?)\(/', $string, $matches); 

echo $matches[0]; // : Wise Lake II (
echo $matches[1]; // Wise Lake II
$str=“对于GC3J26P:Wise Lake II(传统)”;
preg_match('/(?您可以尝试以下方法:

$str = "For GC3J26P: Wise Lake II (Traditional)";
preg_match('/(?<=:).*(?=\()/', $str, $str);
if ($str) echo $str[0];
$string = 'For GC3J26P: Wise Lake II (Traditional)'; 

preg_match('/\:(.*?)\(/', $string, $matches); 

echo $matches[0]; // : Wise Lake II (
echo $matches[1]; // Wise Lake II
您可以尝试以下方法:

$str = "For GC3J26P: Wise Lake II (Traditional)";
preg_match('/(?<=:).*(?=\()/', $str, $str);
if ($str) echo $str[0];
$string = 'For GC3J26P: Wise Lake II (Traditional)'; 

preg_match('/\:(.*?)\(/', $string, $matches); 

echo $matches[0]; // : Wise Lake II (
echo $matches[1]; // Wise Lake II
这是: 我使用了一个“命名子模式”(命名为“name”,但几乎可以被称为任何东西)

$str=“对于GC3J26P:Wise Lake II(传统)”;
preg_match('/:(?P[\S\S]+)\(/',$str,$matches);
echo$matches[“name”];
在这里: 我使用了一个“命名子模式”(命名为“name”,但几乎可以被称为任何东西)

$str=“对于GC3J26P:Wise Lake II(传统)”;
preg_match('/:(?P[\S\S]+)\(/',$str,$matches);
echo$matches[“name”];

Wow。感谢您迄今为止对我的帮助。非常感谢。我现在唯一的问题是(并进一步阅读了它),有时它会在停止之前在更大的文本块中继续,或者它会显示冒号和(.我可以很容易地删除这些字符,但我想知道是否有一些我做得不对的事情包括这些字符。谢谢!哇。感谢所有迄今为止帮助我的人。非常感谢。我现在唯一的问题是(并进一步阅读了)有时它会在停止之前在较大的文本块中继续显示,或者它会显示冒号和(.I)我可以很容易地删除这些字符,但我想知道是否有包含这些字符的操作不正确。谢谢!