Php 使用正则表达式从字符串中删除除[a-zA-Z0-9-]以外的所有内容
我在这些论坛上搜索过,似乎每个人对我的问题都有一点不同 我有以下字符串Php 使用正则表达式从字符串中删除除[a-zA-Z0-9-]以外的所有内容,php,regex,url-rewriting,seo,preg-replace,Php,Regex,Url Rewriting,Seo,Preg Replace,我在这些论坛上搜索过,似乎每个人对我的问题都有一点不同 我有以下字符串To-Wage-a-64位-Coup我想使用preg_replace()删除任何不是字母、数字或连字符的内容。最终结果是感叹号将被删除 我不知道所有需要删除的角色,但我知道什么需要保留。这是为了生成一个seo友好的url。不确定我需要的是消极的还是积极的前瞻,或者可能使用类似于preg\u match()的其他方法来完成我的目标 preg_replace("([^a-zA-Z0-9-])","",$subject); 将^放
To-Wage-a-64位-Coup
我想使用preg_replace()
删除任何不是字母、数字或连字符的内容。最终结果是感叹号将被删除
我不知道所有需要删除的角色,但我知道什么需要保留。这是为了生成一个seo友好的url。不确定我需要的是消极的还是积极的前瞻,或者可能使用类似于preg\u match()
的其他方法来完成我的目标
preg_replace("([^a-zA-Z0-9-])","",$subject);
将^
放在[…]
的开头以抵消其效果
$string = preg_replace("'[^A-Za-z0-9-]'", '', $string);
A-Za-z0-9-匹配字母、数字和连字符。开头的“^”否定该字符类,因此它匹配除这些字符以外的所有字符
如果这是为了创建一个URL友好的字符串,你可能还需要考虑首先将空格转换为SHIPENS,删除可能导致的多个SHIPENS,并将字符串转换为小写。这是你忘记的简单的事情。我想得太多了。