简体   繁体   English

删除除点以外的所有符号,并删除括号内的所有内容

[英]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.])

DEMO 演示

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM