Я пытаюсь сопоставить полное предложение, содержащее определенную строку (две вложенные группы захвата). Это также должно работать, если предложение включает аббревиатуры, такие как "e.g.|i.e.|R.S.V.P.|Mr.|Mrs.|approx.|…"
или числа с точками 10.000
, но в то же время должно быть защитным и не соответствовать коротким словам, за которыми следует точка, такая как Test.
Метод определения границы предложения в основном находит символ .
, который не является частью сокращенного или числового значения.
Открытые вопросы:
a) Как я могу ссылаться и повторять первая группа захвата перед запросом?
Допустимые комбинации символов повторяются до и после группы захвата (MYSEARCHQUERY). Производительность ухудшается, если список исключений для сокращений (Mr.|Mrs|…)
большой - для Engli sh их число> 400.
export const englishAbbreviations = ['abbrev','absol','ad','aeronaut','af','agric','amer','anat','anthrop','anthropol','antiq','aphet','applic','appos','approx','arab','aram','assoc','astrol','astron','astronaut','attrib','austral','autobiogr','ave','bef','bibliogr','biochem','biol','bot','brit','bulg','bull','cal','canad','cat','catal','celt','cent','chem','chron','chronol','cinemat','cinematogr','clin','cogn','col','coll','collect','colloq','comb','comm','communic','comp','compan','compar','conc','conf','conj','cons','contrib','corr','corresp','crit','cytol','da','dat','deb','def','dem','dept','deriv','derog','devel','diagn','dial','dict','dim','dis','diss','du','ecol','econ','ed','edin','educ','ee','electron','elem','ellipt','embryol','engin','entomol','erron','ethnol','euphem','exam','exerc','exper','explor','fem','fig','finn','found','freq','fris','fund','gael','gaz','gen','geogr','geol','geom','geomorphol','ger','gloss','godef','goth','govt','gram','heb','hebr','her','herb','hind','hist','histol','hort','househ','housek','ibid','icel','ichthyol','id','ie','imit','immunol','impers','indef','inorg','introd','ir','irreg','it','jap','joc','jun','knowl','lang','lect','less','let','lett','lex','lit','lith','mag','magn','mal','man','managem','manuf','mar','masc','mataph','math','max','mdu','me','mech','med','mem','meteorol','mics','midl','mil','min','mineral','misc','mod','mus','mythol','narr','nat','naut','neurol','neut','no','nom','norw','nucl','numism','obstetr','occas','oe','of','ofris','oir','on','ophthalm','orig','ornith','os','outl','pa','palaeogr','palaeont','path','perh','pers','petrogr','petrol','pharm','philol','philos','phonet','photogr','physiol','pict','plur','poet','pol','polit','pop','porc','poss','pott','pple','pract','prec','pred','pref','prep','pres','princ','priv','prob','probl','proc','prof','pron','pronunc','prop','pros','prov','psychol','publ','quot','quots','radiol','rec','redupl','ref','refash','refl','reg','rel','reminisc','rep','repr','res','rev','rhet','rom','rum','russ','scand','sci','scot','scotl','sel','ser','sing','slav','soc','sociol','spec','stand','stanf','struct','stud','subj','subord','subseq','suff','superl','surg','taxon','technol','tel','telegr','teleph','theatr','theol','theoret','tokh','trans','trav','treas','treat','treatm','trig','trop','turk','typog','typogr','univ','usu','var','varr','vars','vertebr','vet','viz','voy','vulg','zoogeogr','zool'
];
b) Какой более умный способ определить предложение, содержащее строку поиска? Здесь есть лингвисты?