Php 如果是字母“s”,则删除每个单词的最后一个字母
如标题所示,我有一个包含一些单词的句子,如果句子中每个单词的最后一个字母是字母s,我想删除它 我试试这个Php 如果是字母“s”,则删除每个单词的最后一个字母,php,regex,replace,preg-replace,Php,Regex,Replace,Preg Replace,如标题所示,我有一个包含一些单词的句子,如果句子中每个单词的最后一个字母是字母s,我想删除它 我试试这个 preg_replace("%s(?!.*s.*)%", "", $mystring); 但它只删除最后一个单词尝试将s\\b作为正则表达式 例如: s是您的字母,\b表示单词边界。我想我甚至不会使用regexp这样做 $output = array(); foreach( explode( ' ', $myString ) as $word ) { $output[] = rt
preg_replace("%s(?!.*s.*)%", "", $mystring);
但它只删除最后一个单词尝试将s\\b作为正则表达式
例如:
s是您的字母,\b表示单词边界。我想我甚至不会使用regexp这样做
$output = array();
foreach( explode( ' ', $myString ) as $word )
{
$output[] = rtrim( $word, 's' );
}
$myString = implode( ' ', $output );
你能详细说明一下这个句子的每个单词是否都是字母s吗?这个词以s结尾,而不仅仅是复数形式。意思不是不止一个,而是一个像gas这样的词。如果你这样做是因为复数,如果你去除气体中的s,它将是ga,如果你去除气体中的s,它将是gase。我认为如果是这样的话,你应该创建一个安全的单词列表。在进行测试时,您将忽略这些单词。$myString=Wins。;应该赢…哦,为什么?正则表达式非常适合这种枯燥的工作,如果您提供注释,它可以使代码非常有表现力!:类似这样的解决方案正是正则表达式非常棒的原因——首先必须将其拆分为单词,然后修剪每个单词,然后再次将其内爆,如果您快速查看,则更难理解它的功能。同时,这与正则表达式s\b不同;如果这个词是蛇。正则表达式会把它变成蛇,这会把它变成蛇。@Áxel也许我只是没有仔细阅读这个问题…
$output = array();
foreach( explode( ' ', $myString ) as $word )
{
$output[] = rtrim( $word, 's' );
}
$myString = implode( ' ', $output );