2010-09-15 4 views
1

Existe-t-il un moyen d'obtenir la première partie d'une chaîne avant 4 nombres dans().Obtention d'une chaîne avant les nombres avec regexp en java

Input String: "Some Title (2000) some text." 
Output String: "Some Title " 

Je ne veux pas itérer sur les correspondances et passer en premier. Je veux regex pour obtenir les caractères avant 4 nombres dans() et je veux qu'il rejette le reste du texte.

+2

Avez-vous essayé quelque chose? Pouvez-vous montrer vos tentatives? Ou la communauté SO va-t-elle le faire pour vous? –

Répondre

2

Le Regexp serait quelque chose comme

(.*)\(\d{4}\).* 

Pour une utilisation en Java dont vous avez besoin pour échapper backshlashes et la chaîne de sortie est au niveau du groupe 1.

1

Pour exactement ce type de texte:

String result = input.split("\\(")[0]; 

ou, si ( peut apparaître dans la première partie:

String result = input.split("\\(\\d{4}\\)")[0]; 

Cela fonctionne même pour les entrées ne contenant aucun nombre et les chaînes vides.