大佬教程收集整理的这篇文章主要介绍了php-查找和替换印度字符的正则表达式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
{{https://www.test.com/events/test-event-२०१८/२०१८-.१-entry-list|caption=test event of २०१८}}{{https://www.test.com/events/test-event-३१/३१-.१-entry-list|caption=test event of ३१}}{{https://www.test.com/events/test-event-१८/१८-.१-entry-list|caption=test event of १८}}
我只想在URL中而不是在标题中将所有印度字符的实例更改为等效的英语.
对于Ex:२变为2,依此类推.我正在尝试编写一个RegEx,它将替换URL的“ /”之间的所有实例.到目前为止还没有运气!
我的代码如下
<?PHP
$pattern = "/\/([२]+)\//u";
$text=file_get_contents("Test.txt");
$text = preg_replace($pattern,'2',$text);
file_put_contents("MR-Test.txt",$text);
?>
到目前为止,似乎什么都没用!
编辑:我正在使用的url在文本文件中,我只需要替换URL中的印度文字,而不能替换其他地方.
解决方法:
这是使用preg_replace_callBACk进行工作的一种方法,首先找到要替换的正确数字,然后在回调中替换它们:
$text = '{{https://www.test.com/events/test-event-२०१८/२०१८-.१-entry-list|caption=test event of २०१८}}{{https://www.test.com/events/test-event-३१/३१-.१-entry-list|caption=test event of ३१}}{{https://www.test.com/events/test-event-१८/१८-.१-entry-list|caption=test event of १८}}';
$res = preg_replace_callBACk('/caption=.+?}}(*SKIp)(*F)|[०१२३४५६७८९]/u',
function($m) {
return preg_replace(
array('/०/','/१/','/२/','/३/','/४/','/५/','/६/','/७/','/८/','/९/'),
array('0','1','2','3','4','5','6','7','8','9'),
$m[0]);
}
, $text);
echo $res,"\n";
输出:
{{https://www.test.com/events/test-event-2018/2018-.1-entry-list|caption=test event of २०१८}}{{https://www.test.com/events/test-event-31/31-.1-entry-list|caption=test event of ३१}}{{https://www.test.com/events/test-event-18/18-.1-entry-list|caption=test event of १८}}
说明:
caption=.+?}} # matches caption until }}
(*SKIp)(*F) # and skip that match
| # OR
[०१२३४५६७८९] # 1 digit
以上是大佬教程为你收集整理的php-查找和替换印度字符的正则表达式全部内容,希望文章能够帮你解决php-查找和替换印度字符的正则表达式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。