繁体   English   中英

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

[英]Delete Everything After a Special Character

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

目前我正在玩

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM