Php 删除特殊字符后的所有内容

Php 删除特殊字符后的所有内容,php,regex,Php,Regex,我对regex还不熟悉,我认为这是我最好的解决方案。我试图在找到一个特殊字符后删除所有文本 现在我正在和你玩 preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $word); 但您可能知道,这只会删除所有特殊特许,而不是在找到第一个特殊字符后删除所有字符。如果您想删除从第一个字符开始的所有字符,而不是a-zA-Z0-9%[]。()%&-,您可以使用以下命令: preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(

我对regex还不熟悉,我认为这是我最好的解决方案。我试图在找到一个特殊字符后删除所有文本

现在我正在和你玩

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $word);

但您可能知道,这只会删除所有特殊特许,而不是在找到第一个特殊字符后删除所有字符。

如果您想删除从第一个字符开始的所有字符,而不是
a-zA-Z0-9%[]。()%&-
,您可以使用以下命令:

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word);
preg_replace('/[a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word);
相反,如果您想删除找到
a-zA-Z0-9_%[]。()%&-
中字符后的所有内容,可以使用以下方法:

preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word);
preg_replace('/[a-zA-Z0-9_ %\[\]\.\(\)%&-].*/s', '', $word);

您可以将其转过来并使用:

$matches[0]
将包含您要查找的值。

您只需执行以下操作即可

$word = "Overflow's";

preg_match('/[a-zA-Z0-9_]+/', $word, $matches);

print_r($matches);
返回:

Array
(
    [0] => Overflow
)

您可以使用找到第一次出现的特殊字符的索引,然后使用。

每个字符都有自己的特殊方式。
a-zA-Z0-9\%[]。()%&-
是特殊字符吗?或者它与他们有什么不同?