首页 > 解决方案 > php中preg_replace()函数是如何工作的?

问题描述

我有一个字符串ryyyr #rrrr iituut iit #Google rrr #Tom65

在这个字符串中,我正在通过正则表达式查找所有标签/^#[A-Za-zА-Яа-я0-9_]{4,20}/

我想用阴茎这个词替换所有找到的标签,但由于某种原因没有任何效果

public static function findHashTags () {       
    $string = 'ryyyr #rrrr iituut iit #Google rrr #Tom65';
    $pattern = '/^#[A-Za-zА-Яа-я0-9_]{4,20}/';
    $replacement = 'penis';
    $a = preg_replace($pattern, $replacement, $string);
    return $a;
}

标签: phpregex

解决方案


在您的正则表达式中,它只是在开头传递的^字符串。#

您正在寻找的正则表达式是

/#[A-Za-zА-Яа-я0-9_]{4,20}/

或者另一个变体更短(不完全等效,我的意思是它也会为你完成工作)。

#\S{4,20}

推荐阅读