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


Delete Everything After a Special Character

我是正则表达式的新手,我认为这是我最好的解决方案。我正在尝试在找到特殊字符后找到删除所有文本。

此刻我正在玩

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

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

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

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

相反,如果要在找到a-zA-Z0-9_ %[].()%&-字符后删除所有内容,则可以使用以下方法:

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

你可以把它转过来,使用preg_match

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

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

你可以

简单地做

$word = "Overflow's";
preg_match('/[a-zA-Z0-9_]+/', $word, $matches);
print_r($matches);

其中返回:

Array
(
    [0] => Overflow
)

你可以用 preg_match() 找到特殊字符第一次出现的索引,然后使用 substr()。