From 4e468c8b15cb93fd2b30c9645563a43bddc643b2 Mon Sep 17 00:00:00 2001 From: Yakov Reztsov Date: Fri, 22 Aug 2014 15:42:17 +0200 Subject: update Russian proofreading rules Change-Id: Iedc3af5671241a6e9202916c0a813f0f91303e8f --- ru_RU/README_Lightproof_ru_RU.txt | 2 +- ru_RU/pythonpath/lightproof_impl_ru_RU.py | 8 +++++--- ru_RU/pythonpath/lightproof_opts_ru_RU.py | 4 ++-- ru_RU/pythonpath/lightproof_ru_RU.py | 3 +-- 4 files changed, 9 insertions(+), 8 deletions(-) (limited to 'ru_RU') diff --git a/ru_RU/README_Lightproof_ru_RU.txt b/ru_RU/README_Lightproof_ru_RU.txt index caa4fff..9c5dbb0 100644 --- a/ru_RU/README_Lightproof_ru_RU.txt +++ b/ru_RU/README_Lightproof_ru_RU.txt @@ -3,5 +3,5 @@ Russian grammar checker (developed by the Lightproof grammar checker extension generator, see http://launchpad.net/lightproof) -2009, 2011, 2012 (c) Yakov Reztsov , license: MPL 1.1 / GPL / LGPL +2009, 2011, 2012, 2014 (c) Yakov Reztsov , license: MPL 1.1 / GPL / LGPL diff --git a/ru_RU/pythonpath/lightproof_impl_ru_RU.py b/ru_RU/pythonpath/lightproof_impl_ru_RU.py index 0537d24..22eb59e 100644 --- a/ru_RU/pythonpath/lightproof_impl_ru_RU.py +++ b/ru_RU/pythonpath/lightproof_impl_ru_RU.py @@ -6,7 +6,7 @@ from com.sun.star.beans import PropertyValue pkg = "ru_RU" lang = "ru_RU" locales = {'ru-RU': ['ru', 'RU', '']} -version = "0.3.2" +version = "0.3.4" author = "Yakov Reztsov " name = "Lightproof grammar checker (Russian)" @@ -53,6 +53,8 @@ def _morph(rLoc, word, pattern, all, onlyaffix): return None t = x.getAlternatives() if not t: + if not analyses: # fix synchronization problem (missing alternatives with unloaded dictionary) + return None t = [""] analyses[word] = t[0].split("")[:-1] a = analyses[word] @@ -118,7 +120,7 @@ def suggest(rLoc, word): if not x: return word t = x.getAlternatives() - suggestions[word] = "\\n".join(t) + suggestions[word] = "|".join(t) return suggestions[word] # get the nth word of the input string or None @@ -215,7 +217,7 @@ def compile_rules(dic): i[0] = re.compile(i[0]) except: if 'PYUNO_LOGLEVEL' in os.environ: - print("Lightproof: bad regular expression: ", traceback.format_exc()) + print("Lightproof: bad regular expression: " + str(traceback.format_exc())) i[0] = None def get_rule(loc): diff --git a/ru_RU/pythonpath/lightproof_opts_ru_RU.py b/ru_RU/pythonpath/lightproof_opts_ru_RU.py index b9557e1..91063ac 100644 --- a/ru_RU/pythonpath/lightproof_opts_ru_RU.py +++ b/ru_RU/pythonpath/lightproof_opts_ru_RU.py @@ -1,4 +1,4 @@ lopts = {} lopts_default = {} -lopts['ru_RU'] = [u'hyphen', u'comma', u'multiword', u'together', u'common', u'space', u'abbreviation', u'dup', u'numsep', u'typographica', u'quotation'] -lopts_default['ru_RU'] = [u'hyphen', u'comma', u'multiword', u'together', u'common', u'space', u'abbreviation', u'dup', u'typographica', u'quotation'] +lopts['ru_RU'] = ['hyphen', 'comma', 'multiword', 'together', 'common', 'space', 'abbreviation', 'dup', 'numsep', 'typographica', 'quotation'] +lopts_default['ru_RU'] = ['hyphen', 'comma', 'multiword', 'together', 'common', 'space', 'abbreviation', 'dup', 'typographica'] diff --git a/ru_RU/pythonpath/lightproof_ru_RU.py b/ru_RU/pythonpath/lightproof_ru_RU.py index cb9c6e1..e8249a7 100644 --- a/ru_RU/pythonpath/lightproof_ru_RU.py +++ b/ru_RU/pythonpath/lightproof_ru_RU.py @@ -1,3 +1,2 @@ # -*- encoding: UTF-8 -*- -dic = [[u'(?iu)(?[a-zA-ZA-Z\u0430-\u044f\u0410-\u042f\u0410-\u042f]+)(?P[?!,:;%\u2030\u2031\u02da\u201c\u201d\u2018\u201e])(?P[a-zA-ZA-Z\u0430-\u044f\u0410-\u042f\u0410-\u042f]+)(?![-\\w\u2013\xad])', u'\\g\\g \\g', u'\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d \u043f\u0440\u043e\u0431\u0435\u043b?', u'option(LOCALE,"space")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)[.](?P[A-Z\u0410-\u042f]+)(?![-\\w\u2013\xad])', u'\\g. \\g', u'\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d \u043f\u0440\u043e\u0431\u0435\u043b?', u'option(LOCALE,"space")', 0], [u'(?iu)(?[\u0420\u0440][\u0423\u0443][\u0411\u0431]|[\u041a\u043a][\u041e\u043e][\u041f\u043f]|[\u0413\u0433][\u0420\u0440][\u041d\u043d]|[\u0422\u0442][\u042b\u044b][\u0421\u0441]|[\u0423\u0443][\u041b\u043b]|[\u041a\u043a][\u0412\u0432]|[\u041f\u043f][\u041e\u043e][\u0421\u0441]|[\u0421\u0441][\u0422\u0442]|[\u041f\u043f][\u0420\u0440]|[\u041f\u043f][\u0420\u0440][\u041e\u043e][\u0421\u0441][\u041f\u043f]|[\u0415\u0435][\u0414\u0434]|[\u042d\u044d][\u041a\u043a][\u0417\u0437]|[\u0422\u0442][\u0415\u0435][\u041b\u043b]|[\u0418\u0438][\u0421\u0441][\u041f\u043f])[ ](?![-\\w\u2013\xad])', u' \\g. ', u'\u0422\u043e\u0447\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0439.', u'option(LOCALE,"abbreviation")', 0], [u'(?iu)(?[?!,:;%\u2030\u2031\u02da\u201c\u201d\u2018\u201e])|[.]) {2,3}(\\b|$)(?![-\\w\u2013\xad])', u'\\1 ', u'\u041b\u0438\u0448\u043d\u0438\u0439 \u043f\u0440\u043e\u0431\u0435\u043b.', u'option(LOCALE,"space")', 0], [u'(?iu)(?[a-zA-ZA-Z\u0430-\u044f\u0410-\u042f\u0410-\u042f]+)'(?P\\w*)(?![-\\w\u2013\xad])", u'\\g\u2019\\g', u'\u0410\u043f\u043e\u0441\u0442\u0440\u043e\u0444.', u'option(LOCALE,"quotation")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)[ ][\u0410\u0430][ ](?![-\\w\u2013\xad])', u'\\g, \u0430 ', u'\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u043f\u0435\u0440\u0435\u0434 \u0430.', u'option(LOCALE,"comma")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)[ ][\u041d\u043d][\u041e\u043e][ ](?![-\\w\u2013\xad])', u'\\g, \u043d\u043e ', u'\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0437\u0430\u043f\u044f\u0442\u0430\u044f \u043f\u0435\u0440\u0435\u0434 \u043d\u043e.', u'option(LOCALE,"comma")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+), (?P[\u0410\u0430][\u0412\u0432][\u041e\u043e][\u0421\u0441][\u042c\u044c]|[\u0411\u0431][\u0423\u0443][\u041a\u043a][\u0412\u0432][\u0410\u0430][\u041b\u043b][\u042c\u044c][\u041d\u043d][\u041e\u043e]|[\u0411\u0431][\u0423\u0443][\u0414\u0434][\u0422\u0442][\u041e\u043e]|[\u0412\u0432][\u0414\u0434][\u041e\u043e][\u0411\u0431][\u0410\u0430][\u0412\u0432][\u041e\u043e][\u041a\u043a]|[\u0412\u0432][\u0414\u0434][\u0420\u0440][\u0423\u0443][\u0413\u0433]|[\u0412\u0432][\u0415\u0435][\u0414\u0434][\u042c\u044c]|[\u0412\u0432][\u041e\u043e][\u0422\u0442]|[\u0414\u0434][\u0410\u0430][\u0416\u0436][\u0415\u0435]|[\u0418\u0438][\u0421\u0441][\u041a\u043a][\u041b\u043b][\u042e\u044e][\u0427\u0447][\u0418\u0438][\u0422\u0442][\u0415\u0435][\u041b\u043b][\u042c\u044c][\u041d\u043d][\u041e\u043e]|[\u0418\u0438][\u041c\u043c][\u0415\u0435][\u041d\u043d][\u041d\u043d][\u041e\u043e]|[\u041d\u043d][\u0415\u0435][\u0411\u0431][\u041e\u043e][\u0421\u0441][\u042c\u044c]|[\u041f\u043f][\u0420\u0440][\u0418\u0438][\u0411\u0431][\u041b\u043b][\u0418\u0438][\u0417\u0437][\u0418\u0438][\u0422\u0442][\u0415\u0435][\u041b\u043b][\u042c\u044c][\u041d\u043d][\u041e\u043e]|[\u041f\u043f][\u0420\u0440][\u0418\u0438][\u041c\u043c][\u0415\u0435][\u0420\u0440][\u041d\u043d][\u041e\u043e]|[\u041f\u043f][\u0420\u0440][\u0418\u0438][\u0422\u0442][\u041e\u043e][\u041c\u043c]|[\u041f\u043f][\u041e\u043e][\u0427\u0447][\u0422\u0442][\u0418\u0438]|[\u041f\u043f][\u041e\u043e][\u042d\u044d][\u0422\u0442][\u041e\u043e][\u041c\u043c][\u0423\u0443]|[\u041f\u043f][\u0420\u0440][\u041e\u043e][\u0421\u0441][\u0422\u0442][\u041e\u043e]|[\u0420\u0440][\u0415\u0435][\u0428\u0448][\u0418\u0438][\u0422\u0442][\u0415\u0435][\u041b\u043b][\u042c\u044c][\u041d\u043d][\u041e\u043e]|[\u0421\u0441][\u041b\u043b][\u041e\u043e][\u0412\u0432][\u041d\u043d][\u041e\u043e]|[\u042f\u044f][\u041a\u043a][\u041e\u043e][\u0411\u0431][\u042b\u044b]|[\u0412\u0432] [\u0414\u0434][\u041e\u043e][\u0412\u0432][\u0415\u0435][\u0420\u0440][\u0428\u0448][\u0415\u0435][\u041d\u043d][\u0418\u0438][\u0415\u0435]|[\u0412\u0432] [\u041a\u043a][\u041e\u043e][\u041d\u043d][\u0415\u0435][\u0427\u0447][\u041d\u043d][\u041e\u043e][\u041c\u043c] [\u0421\u0441][\u0427\u0447][\u0415\u0435][\u0422\u0442][\u0415\u0435]|[\u0412\u0432][\u0420\u0440][\u042f\u044f][\u0414\u0434] [\u041b\u043b][\u0418\u0438]|[\u0412\u0432][\u0421\u0441][\u0415\u0435]-[\u0422\u0442][\u0410\u0430][\u041a\u043a][\u0418\u0438]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u0411\u0431][\u0423\u0443][\u0414\u0434][\u0422\u0442][\u041e\u043e]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u0411\u0431][\u042b\u044b]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u0420\u0440][\u0410\u0430][\u0417\u0437]|[\u041a\u043a] [\u0422\u0442][\u041e\u043e][\u041c\u043c][\u0423\u0443] [\u0416\u0436][\u0415\u0435]|[\u041c\u043c][\u0415\u0435][\u0416\u0436][\u0414\u0434][\u0423\u0443] [\u0422\u0442][\u0415\u0435][\u041c\u043c]|[\u041f\u043f][\u041e\u043e] [\u041f\u043f][\u0420\u0440][\u0415\u0435][\u0414\u0434][\u041b\u043b][\u041e\u043e][\u0416\u0436][\u0415\u0435][\u041d\u043d][\u0418\u0438][\u042e\u044e]|[\u041f\u043f][\u041e\u043e] [\u041f\u043f][\u041e\u043e][\u0421\u0441][\u0422\u0442][\u0410\u0430][\u041d\u043d][\u041e\u043e][\u0412\u0432][\u041b\u043b][\u0415\u0435][\u041d\u043d][\u0418\u0438][\u042e\u044e]|[\u041f\u043f][\u041e\u043e] [\u0420\u0440][\u0415\u0435][\u0428\u0448][\u0415\u0435][\u041d\u043d][\u0418\u0438][\u042e\u044e]),(?![-\\w\u2013\xad])', u'\\g \\g', u'\u0421\u043b\u043e\u0432\u0430, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0432\u0432\u043e\u0434\u043d\u044b\u043c\u0438.', u'option(LOCALE,"comma")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+) (?P[\u0418\u0438][\u0422\u0442][\u0410\u0430][\u041a\u043a]|[\u0421\u0441][\u041b\u043b][\u0415\u0435][\u0414\u0434][\u041e\u043e][\u0412\u0432][\u0410\u0430][\u0422\u0442][\u0415\u0435][\u041b\u043b][\u042c\u044c][\u041d\u043d][\u041e\u043e]|[\u0412\u0432][\u041e\u043e]-[\u041f\u043f][\u0415\u0435][\u0420\u0440][\u0412\u0432][\u042b\u044b][\u0425\u0445]|[\u0412\u0432][\u041e\u043e]-[\u0412\u0432][\u0422\u0442][\u041e\u043e][\u0420\u0440][\u042b\u044b][\u0425\u0445]|[\u0412\u0432]-[\u0422\u0442][\u0420\u0440][\u0415\u0435][\u0422\u0442][\u042c\u044c][\u0418\u0438][\u0425\u0445]|[\u0412\u0432]-[\u0427\u0447][\u0415\u0435][\u0422\u0442][\u0412\u0432][\u0415\u0435][\u0420\u0440][\u0422\u0442][\u042b\u044b][\u0425\u0445]|[\u0412\u0432]-[\u041f\u043f][\u042f\u044f][\u0422\u0442][\u042b\u044b][\u0425\u0445]|[\u041f\u043f][\u041e\u043e][\u0416\u0436][\u0410\u0430][\u041b\u043b][\u0423\u0443][\u0419\u0439][\u0421\u0441][\u0422\u0442][\u0410\u0430]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u041d\u043d][\u0410\u0430][\u0420\u0440][\u041e\u043e][\u0427\u0447][\u041d\u043d][\u041e\u043e]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u0418\u0438][\u0421\u0441][\u041a\u043a][\u041b\u043b][\u042e\u044e][\u0427\u0447][\u0415\u0435][\u041d\u043d][\u0418\u0438][\u0415\u0435]|[\u041a\u043a][\u0410\u0430][\u041a\u043a] [\u041f\u043f][\u0420\u0440][\u0410\u0430][\u0412\u0432][\u0418\u0438][\u041b\u043b][\u041e\u043e])(?![-\\w\u2013\xad])', u'\\g, \\g,', u'\u0421\u043b\u043e\u0432\u0430, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0432\u0432\u043e\u0434\u043d\u044b\u043c\u0438, \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438.', u'option(LOCALE,"comma")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)\\b(?![-\\w\u2013\xad])', u'\u0438\u0445', u'\u041f\u0440\u0438\u0442\u044f\u0436\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e\u0438\u043c\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f', u'option(LOCALE,"common")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)\\b(?![-\\w\u2013\xad])', u'\u0441\u0435\u0432\u0435\u0440\u043e-\u0437\u0430\u043f\u0430\u0434\u043d\\g', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)\\b(?![-\\w\u2013\xad])', u'\u044e\u0433\u043e-\u0437\u0430\u043f\u0430\u0434\u043d\\g', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)\\b(?![-\\w\u2013\xad])', u'\u0441\u0435\u0432\u0435\u0440\u043e-\u0432\u043e\u0441\u0442\u043e\u0447\u043d\\g', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[a-zA-Z\u0430-\u044f\u0410-\u042f]+)\\b(?![-\\w\u2013\xad])', u'\u044e\u0433\u043e-\u0432\u043e\u0441\u0442\u043e\u0447\u043d\\g', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[\u041a\u043a][\u0422\u0442][\u041e\u043e]|[\u0427\u0447][\u0422\u0442][\u041e\u043e]|[\u0413\u0433][\u0414\u0434][\u0415\u0435]|[\u0417\u0437][\u0410\u0430][\u0427\u0447][\u0415\u0435][\u041c\u043c]|[\u041a\u043a][\u041e\u043e][\u0415\u0435]) [\u041d\u043d][\u0418\u0438][\u0411\u0431][\u0423\u0443][\u0414\u0434][\u042c\u044c]\\b(?![-\\w\u2013\xad])', u'\\g-\u043d\u0438\u0431\u0443\u0434\u044c', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[\u041a\u043a][\u0422\u0442][\u041e\u043e]|[\u0427\u0447][\u0422\u0442][\u041e\u043e]|[\u0413\u0433][\u0414\u0434][\u0415\u0435]|[\u0417\u0437][\u0410\u0430][\u0427\u0447][\u0415\u0435][\u041c\u043c]|[\u041a\u043a][\u041e\u043e][\u0415\u0435]) [\u041b\u043b][\u0418\u0438][\u0411\u0431][\u041e\u043e]\\b(?![-\\w\u2013\xad])', u'\\g-\u043b\u0438\u0431\u043e', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?[\u041a\u043a][\u0422\u0442][\u041e\u043e]|[\u0427\u0447][\u0422\u0442][\u041e\u043e]|[\u0413\u0433][\u0414\u0434][\u0415\u0435]|[\u0417\u0437][\u0410\u0430][\u0427\u0447][\u0415\u0435][\u041c\u043c]|[\u041a\u043a][\u041e\u043e][\u0415\u0435]) [\u0422\u0442][\u041e\u043e]\\b(?![-\\w\u2013\xad])', u'\\g-\u0442\u043e', u'\u0414\u0435\u0444\u0438\u0441?', u'option(LOCALE,"hyphen")', 0], [u'(?iu)(?\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\u2013\xad])', u'\\g\xa0\\g', u'\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 (ISO)?', u'option(LOCALE,"numsep")', 0], [u'(?iu)(?\\d|\\d\\d|\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\u2013\xad])', u'\\g\xa0\\g\xa0\\g', u'\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 (ISO)?', u'option(LOCALE,"numsep")', 0], [u'(?iu)(?\\d|\\d\\d|\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\u2013\xad])', u'\\g\xa0\\g\xa0\\g\xa0\\g', u'\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432 (ISO)?', u'option(LOCALE,"numsep")', 0], [u'(?iu)(?[-\\w]{3,}) \\1(?![-\\w\u2013\xad])', u'\\g', u'\u041f\u043e\u0432\u0442\u043e\u0440 \u0441\u043b\u043e\u0432\u0430?', u'option(LOCALE,"dup")', 0]] - +dic = [['(?iu)(?[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)(?P[?!,:;%‰‱˚“”‘„])(?P[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)(?![-\\w\\u2013\\u00AD])', '\\g\\g \\g', 'Пропущен пробел?', 'option(LOCALE,"space")', 0], ['(?iu)(?[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)[.](?P[A-ZА-Я][a-zA-Zа-яА-Я]+)(?![-\\w\\u2013\\u00AD])', '\\g. \\g', 'Пропущен пробел?', 'option(LOCALE,"space")', 0], ['(?u)(?руб|коп|грн|тыс|ул|кв|пос|ст|пр|просп|ед|экз|тел|исп)[ ](?![-\\w\\u2013\\u00AD])', ' \\g. ', 'Точка после сокращений.', 'option(LOCALE,"abbreviation")', 0], ['(?u)(?[?!,:;%‰‱˚“”‘„])|[.]) {2,3}(\\b|$)(?![-\\w\\u2013\\u00AD])', '\\1 ', 'Лишний пробел.', 'option(LOCALE,"space")', 0], ['(?u)(?[a-zA-Zа-яА-Я][a-zA-Zа-яА-Я]+)'(?P\\w*)(?![-\\w\\u2013\\u00AD])", '\\g’\\g', 'Апостроф.', 'option(LOCALE,"quotation")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)[ ]а[ ](?![-\\w\\u2013\\u00AD])', '\\g, а ', 'Пропущена запятая перед а.', 'option(LOCALE,"comma")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)[ ]но[ ](?![-\\w\\u2013\\u00AD])', '\\g, но ', 'Пропущена запятая перед но.', 'option(LOCALE,"comma")', 0], ['(?u)(?[a-zа-я][a-zа-я]+), (?Pавось|буквально|будто|вдобавок|вдруг|ведь|вот|даже|исключительно|именно|небось|приблизительно|примерно|притом|почти|поэтому|просто|решительно|словно|якобы|в довершение|в конечном счете|в конечном счёте|вряд ли|все-таки|как будто|как бы|как раз|к тому же|между тем|по предложению|по постановлению|по решению),(?![-\\w\\u2013\\u00AD])', '\\g \\g', 'Слова, не являющиеся вводными.', 'option(LOCALE,"comma")', 0], ['(?u)(?[a-zа-я][a-zа-я]+) (?Pитак|следовательно|во-первых|во-вторых|в-третьих|в-четвертых|в-четвёртых|в-пятых|пожалуйста|как нарочно|как исключение|как правило)(?![-\\w\\u2013\\u00AD])', '\\g, \\g,', 'Слова, являющиеся вводными, выделяются запятыми.', 'option(LOCALE,"comma")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'их', 'Притяжательное местоимение не склоняется', 'option(LOCALE,"common")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'северо-западн\\g', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'юго-западн\\g', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'северо-восточн\\g', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'юго-восточн\\g', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?кто|что|где|зачем|кое) нибудь\\b(?![-\\w\\u2013\\u00AD])', '\\g-нибудь', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?кто|что|где|зачем|кое) либо\\b(?![-\\w\\u2013\\u00AD])', '\\g-либо', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?кто|что|где|зачем|кое) то\\b(?![-\\w\\u2013\\u00AD])', '\\g-то', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0], ['(?u)(?\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g\xa0\\g', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0], ['(?u)(?\\d|\\d\\d|\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g\xa0\\g\xa0\\g', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0], ['(?u)(?\\d|\\d\\d|\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)(?P\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g\xa0\\g\xa0\\g\xa0\\g', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0], ['(?u)(?[-\\w]{3,}) \\1(?![-\\w\\u2013\\u00AD])', '\\g', 'Повтор слова?', 'option(LOCALE,"dup")', 0], ['(?iu)(?