标签: preg-replace

如何使用preg_replace从某个字符中删除任何内容直到字符串结尾?

嗨我需要删除'_'中的所有字符,直到字符串结束.

我尝试过:

$string = 'merry_christmas';

$string = preg_replace('/_*/','',$string);

echo $string; // I need it to be: 'merry'
Run Code Online (Sandbox Code Playgroud)

......但是不.

这个想法是删除下划线字符'_'和右边的所有字符.

谢谢

php preg-replace

8
推荐指数
3
解决办法
2万
查看次数

如何使用'PREG'或'HTACCESS'删除URI中的多个斜杠

如何使用'PREG'或'HTACCESS'删除URI中的多个斜杠

site.com/edition/new/// - > site.com/edition/new/


site.com/edition///new/ - > site.com/edition/new/

谢谢

php .htaccess preg-replace preg-match preg-split

8
推荐指数
2
解决办法
1万
查看次数

preg_replace:bad regex =='Unknown Modifier'?

我正在编写虚假的电子邮件地址,我只是想确保它们是有效的电子邮件格式,所以我试图删除下面集合中没有的任何字符:

$jusr['email'] = preg_replace('/[^a-zA-Z0-9.-_@]/g', '', $jusr['email']);
Run Code Online (Sandbox Code Playgroud)

我在我的Windows机器上没遇到任何问题,但是在linux dev服务器上,每次运行此代码时都会出现此错误:

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /var/www/vhosts/....
Run Code Online (Sandbox Code Playgroud)

我认为这是正则表达式字符串,但我不能把它固定下来.帮助不大?谢谢.

澄清:我不是想要容纳所有有效的电子邮件地址(我的目的不必要),我只需要弄清楚我的preg_replace正则表达式有什么问题.

php regex warnings preg-replace

8
推荐指数
1
解决办法
6248
查看次数

php正则表达式匹配html标签之外

我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时:

<a href="example.com" alt="yasar home page">yasar</a>
Run Code Online (Sandbox Code Playgroud)

这样yasar读取<span class="selected-word">yasar</span>,我的正则表达式也替换了锚标记的alt属性中的yasar.preg_replace()我正在使用的电流看起来像这样:

preg_replace("/(asf|gfd|oyws)/", '<span class=something>${1}</span>',$target);
Run Code Online (Sandbox Code Playgroud)

如何制作正则表达式,使其与html标签内的任何内容都不匹配?

php regex pcre preg-replace

8
推荐指数
2
解决办法
7065
查看次数

Escape Regex Newline

我如何在正则表达式中进行\n匹配?我希望实际的两个ASCII值92和110匹配(作为字符串).

我正在使用PHP的preg谢谢

php regex ascii preg-replace

8
推荐指数
2
解决办法
2万
查看次数

删除除数字和减号之外的所有内容PHP preg_replace

我现在有

preg_replace('/[^0-9]/s', '', $myvariable); 
Run Code Online (Sandbox Code Playgroud)

例如,输入为GB -3.我的当前行给出了值3.我希望能够保持减号,使得值显示-3而不是当前输出3.

php regex preg-replace

8
推荐指数
1
解决办法
8009
查看次数

PHP发誓字过滤器

我正在开发一个WordPress插件,用一个列表中随机的新单词取代评论中的坏词.

我现在有2个数组:一个包含坏词,另一个包含好词.

$bad = array("bad", "words", "here");
$good = array("good", "words", "here");
Run Code Online (Sandbox Code Playgroud)

由于我是初学者,我在某个时候陷入困境.

为了取代坏话,我一直在使用$newstring = str_replace($bad, $good, $string);.

我的第一个问题是我想要关闭案例的敏感性,所以我不会把这样的话放在这里,"bad", "Bad", "BAD", "bAd", "BAd", etc但是我需要新单词来保持原始单词的格式,例如,如果我写"Bad",它会被替换为"Words",但如果我输入"bad",它将被替换为"words"等.

我的第一个尝试是使用str_ireplace,但如果原始单词有大写字母,它会忘记.

第二个问题是我不知道如何处理类似这样的用户:"ba d","word s"等.我需要一个想法.

为了使随机选取一个字,我想我可以使用$new = $good[rand(0, count($good)-1)];,然后$newstring = str_replace($bad, $new, $string);.如果你有更好的主意,我会在这里倾听.

我的脚本的一般外观:

function noswear($string)
{
    if ($string)
    {       
        $bad = array("bad", "words");
        $good = array("good", "words"); 
        $newstring = str_replace($bad, $good, $string);     
        return $newstring;
}

echo noswear("I see bad words coming!");
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助!

php wordpress preg-replace preg-match

8
推荐指数
2
解决办法
4067
查看次数

如何替换字符串中的第n个匹配项

我需要一个简单而快速的解决方案来替换字符串中的第n个匹配(占位符).

例如,sql查询中的第n个问号应替换为提供的值.

$subject = "SELECT uid FROM users WHERE uid = ? or username = ?";

所以,我需要函数str_replace_nth($seach, $replace, $subject, $nth)和第二个问号,它应该被称为str_replace_nth("?", $username, $subject, 2);

有任何想法吗?

PS请不要建议我使用PDO,因为我正在使用FDO(Facebook数据对象)一个具有类似于PDO的接口的库,但是对于FQL.

重要的提醒!我已经发现这种方法很糟糕,因为在第一次替换之后,查询被修改并且索引丢失了.(当你在深夜编程时出现不好的方法:()所以,正如@GolezTrol在评论中提到的那样,最好立刻替换所有.

php regex preg-replace

8
推荐指数
2
解决办法
7341
查看次数

如何在字符串中提取所有锚标记,其href及其锚文本?

我需要以几种不同的方式处理html字符串中的链接.

$str = 'My long <a href="http://example.com/abc" rel="link">string</a> has any
        <a href="/local/path" title="with attributes">number</a> of
        <a href="#anchor" data-attr="lots">links</a>.'
$links = extractLinks($str);
foreach ($links as $link) {
    $pattern = "#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie";
    if (preg_match($pattern,$str)) {
        // Process Remote links
        //   For example, replace url with short url,
        //   or replace long anchor text with truncated
    } else {
        // Process Local Links, Anchors

    }
}
function extractLinks($str) {
    // First, I tried DomDocument
    $dom = new DomDocument();
    $dom->loadHTML($str);
    return $dom->getElementsByTagName('a');
    // But this …
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace domdocument preg-match

8
推荐指数
2
解决办法
7581
查看次数

如何删除此正则表达式输出中的空格?

我在PHP中使用正则表达式.这是我的脚本:

$s="2044 blablabla  2033 blablabla 2088";
echo preg_replace("/(20)\d\d/","$1 14",$s);
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

20 14 blablabla 20 14 blablabla 20 14
Run Code Online (Sandbox Code Playgroud)

我想删除之间的空间2014获得的结果2014.我怎么做?

php regex preg-replace preg-match

8
推荐指数
3
解决办法
255
查看次数