标签: preg-replace

如何 preg_replace 特殊字符,如“Prêt-à-porter”?

在这个论坛和网络上有很多关于这个问题的问题。\n但我不明白。

\n\n

这是我的代码:

\n\n
function updateGuideKeywords($dal)\n{\n    $pattern = "/[^a-zA-Z-\xc3\xaa\xc3\xa0\xc3\xa9]/";\n    $keywords = preg_replace($pattern, \'\', $_POST[\'keywords\']);\n    echo json_encode($keywords);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,输入是Pr\xc3\xaat-\xc3\xa0-porter,输出是"Pr\\u00eat-\\u00e0-porter"

\n\n

为什么我会得到 \'\\u00e\' ?

\n\n

我怎样才能改变我的模式以包含这些字符\xc3\xaa\xc3\xa0以及\xc3\xa9

\n\n

编辑
\nhumm...因为它看起来像unicode/字符问题,我可能会寻求我在本页上找到的解决方案找到的解决方案。

\n\n

在这里他们建议这样做:

\n\n
$chain="pr\xc3\xaat-\xc3\xa0-porter";\n\n$pattern = array("\'\xc3\xa9\'", "\'\xc3\xa8\'", "\'\xc3\xab\'", "\'\xc3\xaa\'", "\'\xc3\x89\'", "\'\xc3\x88\'", "\'\xc3\x8b\'", "\'\xc3\x8a\'", "\'\xc3\xa1\'", "\'\xc3\xa0\'", "\'\xc3\xa4\'", "\'\xc3\xa2\'", "\'\xc3\xa5\'", "\'\xc3\x81\'", "\'\xc3\x80\'", "\'\xc3\x84\'", "\'\xc3\x82\'", "\'\xc3\x85\'", "\'\xc3\xb3\'", "\'\xc3\xb2\'", "\'\xc3\xb6\'", "\'\xc3\xb4\'", "\'\xc3\x93\'", "\'\xc3\x92\'", "\'\xc3\x96\'", "\'\xc3\x94\'", "\'\xc3\xad\'", "\'\xc3\xac\'", "\'\xc3\xaf\'", "\'\xc3\xae\'", "\'\xc3\x8d\'", "\'\xc3\x8c\'", "\'\xc3\x8f\'", "\'\xc3\x8e\'", "\'\xc3\xba\'", "\'\xc3\xb9\'", …
Run Code Online (Sandbox Code Playgroud)

php preg-replace

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

如何跳过第一个正则表达式匹配?

使用正则表达式和 php.ini 时是否有跳过第一个匹配项?

或者是否有某种方法可以使用 str_replace 来实现此目的。

谢谢

更新 我试图从另一个字符串中删除一个字符串的所有实例,但我想保留第一次出现的情况,例如

$toRemove = 'test';
$string = 'This is a test string to test to removing the word test';
Run Code Online (Sandbox Code Playgroud)

输出字符串将是:

这是一个测试字符串,用于测试删除单词test

php regex string preg-replace str-replace

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

如何使用正则表达式删除除某些单词之外的所有内容?

可能的重复:
正则表达式:匹配除

我需要您的帮助来在 PHP 中使用正则表达式来否定选择。所以我有一个像这样的字符串:“你好,我的名字是汤姆”

我需要做的是删除这个字符串中的所有内容,女巫不是“tom”或“jack”或“alex”,所以我尝试了:

$MyString = "Hello my name is tom"
print_r(preg_replace('#^tom|^jack|^alex#i', '', $MyString));
Run Code Online (Sandbox Code Playgroud)

但这不起作用...

你能帮我吗?谢谢

php regex preg-replace

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

preg_replace - 匹配两个标签之间的所有内容

我正在使用一个 CMS 系统,该系统坚持在</figure>和之间放置大量垃圾标记和空标签<figcaption>标签之间放置大量垃圾标记和空标签。

\n\n

我正在尝试使用正则表达式来匹配并删除此垃圾(遗憾的是修复 CMS 是不可能的)。

\n\n

我似乎创建了一个正则表达式,它有点太饿了,而且还剥离了标签。

\n\n
$str = \'<p></p><figure class="image"><img title="Screenshot 2014-08-26 16.34.12.png" alt="Screenshot 2014-08-26 16.34.12.png" src="/image/Screenshot%202014-08-26%2016.34.12.png" class="image-style-none" typeof="foaf:Image"></figure><p></p>\n    <p>\xc3\x82&nbsp;</p>\n    <p></p><figcaption>Screenshot 2014-08-26 16.34.12.png</figcaption><p></p>\n    <p>  </p>\n    <p> </p>\n    <p></p>\';\n\npreg_replace(\'#(</figure>).*?(<figcaption>)#s\', \'[replace-me]\', $str);\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人能指出我正确的方向吗?

\n

php regex preg-replace

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

不区分大小写的 preg 替换特殊字符/Umlaute

这有效:

\n\n
echo preg_replace("/TesT/i","<b>FOUND</b>","TEST"); // works as expected prints FOUND\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么下面这个不起作用?在我的项目中,我想突出显示搜索结果,无论搜索输入的大小写/书写如何

\n\n
echo preg_replace("/\xc3\xbc\xc3\xb6\xc3\x84/i","<b>FOUND</b>","\xc3\x9c\xc3\x96\xc3\x84"); // does NOT work as expected prints \xc3\x9c\xc3\x96\xc3\x84 \n
Run Code Online (Sandbox Code Playgroud)\n\n

我也尝试了以下方法,但也不起作用:

\n\n
mb_internal_encoding("UTF-8");\nmb_regex_encoding("UTF-8");\nmb_ereg_replace("/\xc3\xbc\xc3\xb6\xc3\x84/i","<b>FOUND</b>","\xc3\x9c\xc3\x96\xc3\x84");\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新:
\n据我所知,我确保页面上的所有内容、脚本、连接都是 UTF-8

\n

php preg-replace case-insensitive match

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

将电影名称和年份与电影文件名称分开

我有一个这样的文件名

鸟人.2014.DVDSCR.X264-PLAYNOW.mkv

Divergent (2014) 720p Blu-Ray x2649 [双音频][英语 DD 5.1 + 印地语 DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv

Cradle 2 The Grave 2003 HDTVRip 720p 双音频[英语+印地语] ~ BRAR

我必须将电影名称和年份分开

为了获得使用年份 perg_match 像

$s="Divergent (2014) 720p Blu-Ray x2649 [Dual-Audio][English DD 5.1 + Hindi DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv";
     if (preg_match('/\b\d{4}\b/', $s, $matches)) {
    $year = $matches[0];
}
echo $year;
Run Code Online (Sandbox Code Playgroud)

结果:- 2014 //工作完美

但我也想得到像这样的电影名称

发散型

鸟人

摇篮 2 坟墓

我也检查这个链接

从字符串中提取电影名称和年份是可选的

但什么也没发生

我怎么得到它?请帮助或提供提示来实现它。

php regex preg-replace preg-match

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

Javascript 用颜色突出显示所有排除的字符

我想在 Javascript 中创建一个正则表达式,突出显示列表中所有排除的字符<span></span>。有人可以帮我创建这个复杂的正则表达式吗?

\n\n

示例文本:This is a text \xe8\x8e\x8a\xe5\xad\x90 that contains \xc2\xb7 forbidden characters.

\n\n

需要转换为:This is a text <span>\xe8\x8e\x8a</span><span>\xe5\xad\x90</span> that contains <span>\xc2\xb7</span> forbidden characters.

\n\n

允许的字符列表:a-z, A-Z, 0-9, +%#()*+,-/:;<=>?_\xe2\x82\xac\xc2\xa3\xc2\xa5\xc2\xa7\xc3\x84\xc3\x85\xc3\x9c\xc3\xa4\xc3\xa8\xc3\xa9\xc3\xac\xc3\xb1\xc3\xb2\xc3\xb6\xc3\xb9\xc3\xbc=\xe2\x80\x9c\xe2\x80\x9d\xe2\x80\x98\xe2\x80\x99\'"

\n\n

谢谢你帮我!

\n

javascript regex replace preg-replace

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

preg_replace img src 到 data-src 堆栈溢出 (PHP)

我对 iframe 使用延迟加载脚本,我需要制作 preg_replace 代码以将 src 更改为 data-src。

我尝试了这样的事情但我失败了:

$cache = preg_replace('%<iframe.*?src=["\'](.*?)["\'].*?/?>%i', 'data-src="$1"', $content);
Run Code Online (Sandbox Code Playgroud)

我的代码仅打印,data-src="the link"没有完整的 iframe 代码。

html php iframe preg-replace

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

如何在 Woocommerce 中为价格制作千位分隔符

几个月前我写了这段代码(在 woocommerce/single-product/price.php 上),但我丢失了它,我很幸运地恢复了代码,但处于第一阶段。之前结果给了我一千个分离,我认为是因为“preg_replace”函数。

<?php echo '$' . round((preg_replace('/^[\.]/', '', $product->get_price()) *1.04)); ?>
Run Code Online (Sandbox Code Playgroud)

显示的结果类似于:$311896。我正在寻找的格式: $311.896

我将向您展示它是如何工作的。我向支付网关添加税(这就是我使用公式 x1.04 的原因)。它是这样显示的: 如果格式正确,则为原价,但我的代码不正确。这是一个令人头痛的问题。

php wordpress preg-replace woocommerce price

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

preg_replace 删除样式文本/css 标签

我需要一些有关 PHP 的帮助,因为我很难摆脱style type="text/css"标签。我想删除样式标记以将其替换为空字符串。

当我尝试这个时:

if (strpos($inbox_message, '<style type="text/css">') !== false) {
    echo (preg_replace('/<style[^>]*>(([^<]|[<[^\/]|<\/[^s]|<\/s[^t])*)<\/style>/i','',$inbox_message));
}
Run Code Online (Sandbox Code Playgroud)

它仍然会在 html 页面中显示样式标签。

这是它显示的内容:

<style type="text/css"> body {position: relative; font-family: Segoe UI; font-size: 12px; } .pageHeader {color: #9C9C9C; font-size: 160%; padding: 0px 0px 6px 0px} .pageHeaderLogo {padding-right: 15px;} .pageHeaderTitle{border-left: 1px solid #CCCCCC; padding: 5px;} .pageFooter {width: 100%; background-color: #f2f2f2; font-size: 12px; font-family: Segoe UI; padding:4px 4px 4px 4px; } .pageFooterLogo {text-align:right; width:100%} .padCells { padding: 0px 6px 0px 0px; } .preHeader {display: none …
Run Code Online (Sandbox Code Playgroud)

html css php regex preg-replace

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