2012-04-24 62 views
0

我是新来的正则表达式,我认为这是我最好的解决方案。我试图找到一个特殊字符被发现后删除所有文本。删除特殊字符后的所有内容

目前我正与

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

打不过你可能知道,只有第一个特殊字符后发现删除所有的特别包机,不是万能的。

+8

每个角色都有自己的特色。 – 2012-04-24 16:55:17

+0

'a-zA-Z0-9_%[]。()%& - '特殊字符?或者它与它们有什么不同? – sch 2012-04-24 17:08:22

回答

1

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

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

相反,如果你想找到从a-zA-Z0-9_ %[].()%&-一个字符后,除去每一件事情,您可以使用以下命令:

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

你可以把它周围,并使用preg_match

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

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

0

你可以简单地做

$word = "Overflow's"; 

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

print_r($matches); 

将返回:

Array 
(
    [0] => Overflow 
)