Je veux diviser un texte en phrases. Une phrase se termine par (point) ou? ou ! suivi d'un ou plusieurs caractères de blanchissage suivis et la phrase suivante commence par une lettre majuscule. P>
Par exemple: P>
première phrase. Deuxième phrase! p>
Comment puis-je faire ça? P>
4 Réponses :
Avez-vous essayé string.split () code>? Voir les docs à propos de ce ici P>
Oui, je l'ai fait, mais ce n'est pas suffisant. Dans le texte, il y a des liens. (Ex: www.mysite.it)
Vous pouvez vous séparer d'une expression régulière qui correspond à l'espace blanc, avec un lookbehind qui recherche les terminateurs de phrase: Ceci sera divisé sur les caractères d'espace blanc et conserver les terminateurs dans le Phrases. P> Exemple: p> sortie: p>
Merci merci merci !!!!!!!!!!!!! Merci merci merci de vous remercier ..Merci une tonne ... Aviait ce mal..was lutter avec string.split () fonction qui ne permet qu'un seul caractère unique.
Soyez prudent parce que cela ne fonctionnerait pas pour des choses comme «Hello M. & Mme Smith».
@Yodacheese: Oui, c'est vrai. Il faudra une analyse très avancée du sens de la phrase pour attraper quand une période se termine réellement une phrase. Considérez par exemple les phrases «L'honorifique est M. Smith est le nom de famille». Code>.
Vous pouvez ajouter des ellipsis: @ "(? <= ([\. \? \?]) | (\. {3})) \ s +"
C'est une très mauvaise solution
@AX: Pourquoi pensez-vous?
Quelles langues voulez-vous soutenir? Par exemple, dans thaï, il n'y a pas d'espaces entre les mots et les phrases ne sont séparés d'espace. Donc, en général, cette tâche est très complexe. Considérez également le commentaire utile de Fredrik Mörk. P>
Donc, au début, vous devez définir un ensemble de règles sur quelle "phrase" est. Ensuite, vous êtes invité à utiliser l'une des solutions suggérées. P>
Je veux soutenir principalement l'anglais. Il y a beaucoup d'état particulier. Par exemple, je dois envisager des abréviations (Dr. Jekyll)
Cela devrait être un commentaire car il n'y a pas de réponse ici, ne demandez qu'une mise à jour dans la question.
Comment géreriez-vous cela: »quand il est venu à la maison, il a crié« Hey! Quelqu'un là-bas? ", Puis ouvrit la porte et entra-t-il." I> ou vous avez un contrôle très strict sur l'entrée?
J'ai ajouté une expression régulière dans ma réponse qui considère cette affaire. Ref Regexlib.com/redetails.aspx?regexp_id=2355
@Fredrik Mörk Votre exemple est un cas particulièrement intéressant. Je gérerais comme une phrase unique