又快又脏:
\#w+ \#b+ \d+(?:\.?\d+)? (.*)
例子:
<?php
$string = "France Gros Frère et Sur Hte-Cote de Nuit Blc 2008 #wwww #bbbbb 8.5 Nice yellow fruit nose, some vanilla notes, good crispness";
$regex = "/\#w+ \#b+ \d+(?:\.?\d+)? (.*)/";
preg_match ($regex, $string, $output);
echo $output[1];
?>
但是如果在#bbbbb 之后可以有一个没有任何数字的字符串,你最好使用这个:
\#w+ \#b+\s*(?:\d+(?:\.\d+)?)?\s*(.*)
因此,您不必在#bbbbb 之后放置任何数字,您可以在#bbbbb、数字(如果有)和要提取的字符串之间使用任意数量的空格。
其中大部分是可选的,因此您的字符串可能如下所示:
blabla #w #bb 你好,世界
或者像这样
blabla #wwwwwwwwwwwwww #bbb 1337 你好世界
或者像这样:
#w #bHello 世界
你可以在这里看到结果
编辑:
根据要求,这个还应该删除字符串中的 URL:
<?php
$string = "France Gros Frère et Sur Hte-Cote de Nuit Blc 2008 #wwww #bbbbb 8.5 Nice yellow fruit nose, some vanilla notes, good crispness http://www.example.com/23232";
$regex = "/\#w+ \#b+ \d+(?:\.?\d+)? (.*)/";
preg_match ($regex, $string, $output);
if (isset($output[1])) {
$regex = "!https?:\/\/(?:[\da-z\.-]+)\.(?:[a-z\.]{2,6})(?:[\/\w \.-]*)*\/?!";
$newString = trim(preg_replace ($regex, '', $output[1]));
echo $newString;
} else {
echo $string;
}
?>
结果应该是:
漂亮的黄色水果香气,一些香草味,脆度好