[英]Remove all symbols except Dot and also remove everything inside braces
I creating seo friendly url permalinks , I have words like below which contains extra spaces , symbols etc. 我创建了seo友好的URL永久链接,下面有类似的单词,其中包含多余的空格,符号等。
INPUT examples: 输入示例:
software version 1.2.33 !##$%@~_+:";,|}{[];,;#&*^{2014}
Вася Обломов - Многоходовочка! (2014) MP3 [bitsnoop]
Дельфин - Андрей $$ (2014) MP3 [bitsnoop]
Laidback Luke & Uberjak'd – Go (Original Mix) [Hysteria] [bitsnoop]
Bob Dylan - Down In The Groove [320k MP3] [bitsnoop]
Desired OUTPUT: 所需的输出:
software version 1.2.33
Вася Обломов Многоходовочка MP3
Дельфин Андрей MP3
Laidback Luke Uberjakd Go
Bob Dylan Down In The Groove
What i Tried : 我试过的
$string = "ABC (Test1) hello$";
$string = preg_replace("/\([^)]+\)/","",$string); // 'ABC hello$'
$string = preg_replace("/[^ \w]+/", "", $string);
So in simple words i need to remove everthing inside brackets like {}[]()
,and remove all symbols except . (dot)
因此,简单来说,我需要删除
{}[]()
类的方括号内的所有内容,并删除除以外的所有符号. (dot)
. (dot)
. . (dot)
。
Ps : this contains utf8 encoded strings aswel ps:包含utf8编码的字符串aswel
Use the below regex and then replace the matched characters with empty string. 使用下面的正则表达式,然后将匹配的字符替换为空字符串。
*(?:\{[^}]*\}|\[[^\]]*\]|\([^)]*\)|[^\p{L}\p{N}\s.])
Code: 码:
$string = <<<EOT
software version 1.2.33 !##$%@~_+:";,|}{[];,;#&*^{2014}
Вася Обломов - Многоходовочка! (2014) MP3 [bitsnoop]
Дельфин - Андрей $$ (2014) MP3 [bitsnoop]
Laidback Luke & Uberjak\'d – Go (Original Mix) [Hysteria] [bitsnoop]
Bob Dylan - Down In The Groove [320k MP3] [bitsnoop]
EOT;
echo preg_replace('~ *(?:\{[^}]*\}|\[[^\]]*\]|\([^)]*\)|[^\p{L}\p{N}\s.])~u', '', $string)
Output: 输出:
software version 1.2.33
Вася Обломов Многоходовочка MP3
Дельфин Андрей MP3
Laidback Luke Uberjakd Go
Bob Dylan Down In The Groove
\\p{L}
matches any kind of letter from any language and \\p{N}
matches any kind of number. \\p{L}
匹配任何语言的字母, \\p{N}
匹配任何数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.