タイトルの右側で、コンマで区切られた任意の一連の2文字の言語コードを正規表現で一致(削除)するにはどうすればよいですか?[複製]

Dec 01 2020

私は次のような文字列をたくさん持っています:

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
...

つまり、製品のタイトルの後に、括弧内に1つ以上の言語コードのリストが続く場合があります。

これらを安全な方法で文字列から安全に削除するための(PCRE)正規表現を思い付くのに本当に苦労しています。つまり、タイトルに触れる可能性は低いです。

([A-Z]{1}[a-z]{1})「It」や「De」などの単一の言語コードに一致させるには、それがどこかに関係している必要があることを私は知っていますが、コンマを含む、またはコンマなしで、行にそのようなものがいくつでもある可能性をどのように処理する必要がありますか( 1)、私の正規表現スキルを超えています。

ファイル名のタイトル部分と「メタデータ」部分の間にある種の明確な区切り文字を使用していたことを本当に望んでいます...そうすれば、このすべての手動の​​試行錯誤の削除を行う必要はありません。しかし、彼らはしませんでした。

回答

MonkeyZeus Dec 01 2020 at 02:29

このような何かがそれをするでしょう:

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

https://regex101.com/r/xxNQ8h/1

wp78de Dec 01 2020 at 02:33

このように試してください:

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

オンラインデモ