Index: gc_core/js/lang_core/gc_engine.js ================================================================== --- gc_core/js/lang_core/gc_engine.js +++ gc_core/js/lang_core/gc_engine.js @@ -163,11 +163,11 @@ parse: function (sText, sCountry="${country_default}", bDebug=false, dOptions=null, bContext=false) { let oText = new TextParser(sText); return oText.parse(sCountry, bDebug, dOptions, bContext); }, - _zEndOfSentence: new RegExp ('([.?!:;…][   .?!…»”")]+(?=[A-ZÉÈÎÔ])|.$)', "g"), + _zEndOfSentence: new RegExp ('([.?!:;…][   .?!…»«“”"‘’)]+(?=[A-ZÉÈÎÔ])|.$)', "g"), _zBeginOfParagraph: new RegExp ("^[-  –—.,;?!…]*", "ig"), _zEndOfParagraph: new RegExp ("[-  .,;?!…–—]*$", "ig"), getSentenceBoundaries: function* (sText) { let mBeginOfSentence = this._zBeginOfParagraph.exec(sText); Index: gc_core/py/lang_core/gc_engine.py ================================================================== --- gc_core/py/lang_core/gc_engine.py +++ gc_core/py/lang_core/gc_engine.py @@ -189,11 +189,11 @@ _dOptions = dict(gc_options.getOptions(_sAppContext)) #### Parsing -_zEndOfSentence = re.compile(r'([.?!:;…][   .?!…»”"’)]+(?=[A-ZÉÈÎÔ])|.$)') +_zEndOfSentence = re.compile(r'([.?!:;…][   .?!…»«“”"‘’)]+(?=[A-ZÉÈÎÔ])|.$)') _zBeginOfParagraph = re.compile(r"^\W*") _zEndOfParagraph = re.compile(r"\W*$") def _getSentenceBoundaries (sText): iStart = _zBeginOfParagraph.match(sText).end()