首页 > 解决方案 > 如何在标题右侧正则表达式匹配(删除)任意一系列以逗号分隔的两字母语言代码?

问题描述

我有一堆字符串,例如:

Super Mario Bros. 8 (En,Fr,De,Es,It)
Donald Duck in Whacky Land (En,Fr,De,Es,Sv)
Toadstool Adventures 3D (En)
Chinaland (En,De)
A title which doesn't have any such thing
...

也就是说,产品的标题后跟(有时)括号中的一个或多个语言代码的列表。

我真的很难想出一个(PCRE)正则表达式来以安全的方式安全地从字符串中删除这些。也就是说,不太可能触及标题。

我知道([A-Z]{1}[a-z]{1})必须在某处涉及,以匹配单一语言代码,例如“It”或“De”,但我应该如何处理连续任意数量的这种可能性,逗号之间有逗号或没有逗号(如果它只是一),超出了我的正则表达式技能。

我真的希望他们在标题部分和文件名的“元数据”部分之间使用了某种明确的分隔符......然后我就不需要做所有这些手动试错删除。但他们没有。

标签: regexpcre

解决方案


试试这样:

\(([A-Z][a-z],?)+\).*$

在线演示


推荐阅读