update
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,119 @@
|
||||
import uno
|
||||
import unohelper
|
||||
import lightproof_opts_ru_RU
|
||||
from lightproof_impl_ru_RU import pkg
|
||||
|
||||
from com.sun.star.lang import XServiceInfo
|
||||
from com.sun.star.awt import XContainerWindowEventHandler
|
||||
|
||||
# options
|
||||
options = {}
|
||||
|
||||
def load(context):
|
||||
try:
|
||||
l = LightproofOptionsEventHandler(context)
|
||||
for i in lightproof_opts_ru_RU.lopts:
|
||||
l.load(i)
|
||||
except:
|
||||
pass
|
||||
|
||||
def get_option(page, option):
|
||||
try:
|
||||
return options[page + "," + option]
|
||||
except:
|
||||
try:
|
||||
return options[page[:2] + "," + option]
|
||||
except:
|
||||
return 0
|
||||
|
||||
def set_option(page, option, value):
|
||||
options[page + "," + option] = int(value)
|
||||
|
||||
class LightproofOptionsEventHandler( unohelper.Base, XServiceInfo, XContainerWindowEventHandler ):
|
||||
def __init__( self, ctx ):
|
||||
p = uno.createUnoStruct( "com.sun.star.beans.PropertyValue" )
|
||||
p.Name = "nodepath"
|
||||
p.Value = "/org.openoffice.Lightproof_%s/Leaves"%pkg
|
||||
self.xConfig = ctx.ServiceManager.createInstance( 'com.sun.star.configuration.ConfigurationProvider' )
|
||||
self.node = self.xConfig.createInstanceWithArguments( 'com.sun.star.configuration.ConfigurationUpdateAccess', (p, ) )
|
||||
self.service = "org.libreoffice.comp.pyuno.LightproofOptionsEventHandler." + pkg
|
||||
self.ImplementationName = self.service
|
||||
self.services = (self.service, )
|
||||
|
||||
# XContainerWindowEventHandler
|
||||
def callHandlerMethod(self, aWindow, aEventObject, sMethod):
|
||||
if sMethod == "external_event":
|
||||
return self.handleExternalEvent(aWindow, aEventObject)
|
||||
|
||||
def getSupportedMethodNames(self):
|
||||
return ("external_event", )
|
||||
|
||||
def handleExternalEvent(self, aWindow, aEventObject):
|
||||
sMethod = aEventObject
|
||||
if sMethod == "ok":
|
||||
self.saveData(aWindow)
|
||||
elif sMethod == "back" or sMethod == "initialize":
|
||||
self.loadData(aWindow)
|
||||
return True
|
||||
|
||||
def load(self, sWindowName):
|
||||
child = self.getChild(sWindowName)
|
||||
for i in lightproof_opts_ru_RU.lopts[sWindowName]:
|
||||
sValue = child.getPropertyValue(i)
|
||||
if sValue == '':
|
||||
if i in lightproof_opts_ru_RU.lopts_default[sWindowName]:
|
||||
sValue = 1
|
||||
else:
|
||||
sValue = 0
|
||||
set_option(sWindowName, i, sValue)
|
||||
|
||||
def loadData(self, aWindow):
|
||||
sWindowName = self.getWindowName(aWindow)
|
||||
if (sWindowName == None):
|
||||
return
|
||||
child = self.getChild(sWindowName)
|
||||
for i in lightproof_opts_ru_RU.lopts[sWindowName]:
|
||||
sValue = child.getPropertyValue(i)
|
||||
if sValue == '':
|
||||
if i in lightproof_opts_ru_RU.lopts_default[sWindowName]:
|
||||
sValue = 1
|
||||
else:
|
||||
sValue = 0
|
||||
xControl = aWindow.getControl(i)
|
||||
xControl.State = sValue
|
||||
set_option(sWindowName, i, sValue)
|
||||
|
||||
def saveData(self, aWindow):
|
||||
sWindowName = self.getWindowName(aWindow)
|
||||
if (sWindowName == None):
|
||||
return
|
||||
child = self.getChild(sWindowName)
|
||||
for i in lightproof_opts_ru_RU.lopts[sWindowName]:
|
||||
xControl = aWindow.getControl(i)
|
||||
sValue = xControl.State
|
||||
child.setPropertyValue(i, str(sValue))
|
||||
set_option(sWindowName, i, sValue)
|
||||
self.commitChanges()
|
||||
|
||||
def getWindowName(self, aWindow):
|
||||
sName = aWindow.getModel().Name
|
||||
if sName in lightproof_opts_ru_RU.lopts:
|
||||
return sName
|
||||
return None
|
||||
|
||||
# XServiceInfo method implementations
|
||||
def getImplementationName (self):
|
||||
return self.ImplementationName
|
||||
|
||||
def supportsService(self, ServiceName):
|
||||
return (ServiceName in self.services)
|
||||
|
||||
def getSupportedServiceNames (self):
|
||||
return self.services
|
||||
|
||||
def getChild(self, name):
|
||||
return self.node.getByName(name)
|
||||
|
||||
def commitChanges(self):
|
||||
self.node.commitChanges()
|
||||
return True
|
||||
@@ -0,0 +1,236 @@
|
||||
# -*- encoding: UTF-8 -*-
|
||||
import uno, re, sys, os, traceback
|
||||
from com.sun.star.text.TextMarkupType import PROOFREADING
|
||||
from com.sun.star.beans import PropertyValue
|
||||
|
||||
pkg = "ru_RU"
|
||||
lang = "ru_RU"
|
||||
locales = {'ru-RU': ['ru', 'RU', '']}
|
||||
version = "0.3.4"
|
||||
author = "Yakov Reztsov <yr at myooo dot ru>"
|
||||
name = "Lightproof grammar checker (Russian)"
|
||||
|
||||
import lightproof_handler_ru_RU
|
||||
|
||||
# loaded rules (check for Update mechanism of the editor)
|
||||
try:
|
||||
langrule
|
||||
except NameError:
|
||||
langrule = {}
|
||||
|
||||
# ignored rules
|
||||
ignore = {}
|
||||
|
||||
# cache for morphogical analyses
|
||||
analyses = {}
|
||||
stems = {}
|
||||
suggestions = {}
|
||||
|
||||
# assign Calc functions
|
||||
calcfunc = None
|
||||
|
||||
# check settings
|
||||
def option(lang, opt):
|
||||
return lightproof_handler_ru_RU.get_option(lang.Language + "_" + lang.Country, opt)
|
||||
|
||||
# filtering affix fields (ds, is, ts etc.)
|
||||
def onlymorph(st):
|
||||
if st != None:
|
||||
st = re.sub(r"^.*(st:|po:)", r"\\1", st) # keep last word part
|
||||
st = re.sub(r"\\b(?=[dit][sp]:)","@", st) # and its affixes
|
||||
st = re.sub(r"(?<!@)\\b\w\w:\w+","", st).replace('@','').strip()
|
||||
return st
|
||||
|
||||
# if the pattern matches all analyses of the input word,
|
||||
# return the last matched substring
|
||||
def _morph(rLoc, word, pattern, all, onlyaffix):
|
||||
global analyses
|
||||
if not word:
|
||||
return None
|
||||
if word not in analyses:
|
||||
x = spellchecker.spell(u"<?xml?><query type='analyze'><word>" + word + "</word></query>", rLoc, ())
|
||||
if not x:
|
||||
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("</a>")[:-1]
|
||||
a = analyses[word]
|
||||
result = None
|
||||
p = re.compile(pattern)
|
||||
for i in a:
|
||||
if onlyaffix:
|
||||
i = onlymorph(i)
|
||||
result = p.search(i)
|
||||
if result:
|
||||
result = result.group(0)
|
||||
if not all:
|
||||
return result
|
||||
elif all:
|
||||
return None
|
||||
return result
|
||||
|
||||
def morph(rLoc, word, pattern, all=True):
|
||||
return _morph(rLoc, word, pattern, all, False)
|
||||
|
||||
def affix(rLoc, word, pattern, all=True):
|
||||
return _morph(rLoc, word, pattern, all, True)
|
||||
|
||||
def spell(rLoc, word):
|
||||
if not word:
|
||||
return None
|
||||
return spellchecker.isValid(word, rLoc, ())
|
||||
|
||||
# get the tuple of the stem of the word or an empty array
|
||||
def stem(rLoc, word):
|
||||
global stems
|
||||
if not word:
|
||||
return []
|
||||
if not word in stems:
|
||||
x = spellchecker.spell(u"<?xml?><query type='stem'><word>" + word + "</word></query>", rLoc, ())
|
||||
if not x:
|
||||
return []
|
||||
t = x.getAlternatives()
|
||||
if not t:
|
||||
t = []
|
||||
stems[word] = list(t)
|
||||
return stems[word]
|
||||
|
||||
# get the tuple of the morphological generation of a word or an empty array
|
||||
def generate(rLoc, word, example):
|
||||
if not word:
|
||||
return []
|
||||
x = spellchecker.spell(u"<?xml?><query type='generate'><word>" + word + "</word><word>" + example + "</word></query>", rLoc, ())
|
||||
if not x:
|
||||
return []
|
||||
t = x.getAlternatives()
|
||||
if not t:
|
||||
t = []
|
||||
return list(t)
|
||||
|
||||
# get suggestions
|
||||
def suggest(rLoc, word):
|
||||
global suggestions
|
||||
if not word:
|
||||
return word
|
||||
if word not in suggestions:
|
||||
x = spellchecker.spell("_" + word, rLoc, ())
|
||||
if not x:
|
||||
return word
|
||||
t = x.getAlternatives()
|
||||
suggestions[word] = "|".join(t)
|
||||
return suggestions[word]
|
||||
|
||||
# get the nth word of the input string or None
|
||||
def word(s, n):
|
||||
a = re.match("(?u)( [-.\\w%%]+){" + str(n-1) + "}( [-.\\w%%]+)", s)
|
||||
if not a:
|
||||
return ''
|
||||
return a.group(2)[1:]
|
||||
|
||||
# get the (-)nth word of the input string or None
|
||||
def wordmin(s, n):
|
||||
a = re.search("(?u)([-.\\w%%]+ )([-.\\w%%]+ ){" + str(n-1) + "}$", s)
|
||||
if not a:
|
||||
return ''
|
||||
return a.group(1)[:-1]
|
||||
|
||||
def calc(funcname, par):
|
||||
global calcfunc
|
||||
global SMGR
|
||||
if calcfunc == None:
|
||||
calcfunc = SMGR.createInstance( "com.sun.star.sheet.FunctionAccess")
|
||||
if calcfunc == None:
|
||||
return None
|
||||
return calcfunc.callFunction(funcname, par)
|
||||
|
||||
def proofread( nDocId, TEXT, LOCALE, nStartOfSentencePos, nSuggestedSentenceEndPos, rProperties ):
|
||||
global ignore
|
||||
aErrs = []
|
||||
s = TEXT[nStartOfSentencePos:nSuggestedSentenceEndPos]
|
||||
for i in get_rule(LOCALE).dic:
|
||||
# 0: regex, 1: replacement, 2: message, 3: condition, 4: ngroup, (5: oldline), 6: case sensitive ?
|
||||
if i[0] and not str(i[0]) in ignore:
|
||||
for m in i[0].finditer(s):
|
||||
try:
|
||||
if not i[3] or eval(i[3]):
|
||||
aErr = uno.createUnoStruct( "com.sun.star.linguistic2.SingleProofreadingError" )
|
||||
aErr.nErrorStart = nStartOfSentencePos + m.start(i[4]) # nStartOfSentencePos
|
||||
aErr.nErrorLength = m.end(i[4]) - m.start(i[4])
|
||||
aErr.nErrorType = PROOFREADING
|
||||
aErr.aRuleIdentifier = str(i[0])
|
||||
iscap = (i[-1] and m.group(i[4])[0:1].isupper())
|
||||
if i[1][0:1] == "=":
|
||||
aErr.aSuggestions = tuple(cap(eval(i[1][1:]).replace('|', "\n").split("\n"), iscap, LOCALE))
|
||||
elif i[1] == "_":
|
||||
aErr.aSuggestions = ()
|
||||
else:
|
||||
aErr.aSuggestions = tuple(cap(m.expand(i[1]).replace('|', "\n").split("\n"), iscap, LOCALE))
|
||||
comment = i[2]
|
||||
if comment[0:1] == "=":
|
||||
comment = eval(comment[1:])
|
||||
else:
|
||||
comment = m.expand(comment)
|
||||
aErr.aShortComment = comment.replace('|', '\n').replace('\\n', '\n').split("\n")[0].strip()
|
||||
aErr.aFullComment = comment.replace('|', '\n').replace('\\n', '\n').split("\n")[-1].strip()
|
||||
if "://" in aErr.aFullComment:
|
||||
p = PropertyValue()
|
||||
p.Name = "FullCommentURL"
|
||||
p.Value = aErr.aFullComment
|
||||
aErr.aFullComment = aErr.aShortComment
|
||||
aErr.aProperties = (p,)
|
||||
else:
|
||||
aErr.aProperties = ()
|
||||
aErrs = aErrs + [aErr]
|
||||
except Exception as e:
|
||||
if len(i) == 7:
|
||||
raise Exception(str(e), i[5])
|
||||
raise
|
||||
|
||||
return tuple(aErrs)
|
||||
|
||||
def cap(a, iscap, rLoc):
|
||||
if iscap:
|
||||
for i in range(0, len(a)):
|
||||
if a[i][0:1] == "i":
|
||||
if rLoc.Language == "tr" or rLoc.Language == "az":
|
||||
a[i] = u"\u0130" + a[i][1:]
|
||||
elif a[i][1:2] == "j" and rLoc.Language == "nl":
|
||||
a[i] = "IJ" + a[i][2:]
|
||||
else:
|
||||
a[i] = "I" + a[i][1:]
|
||||
else:
|
||||
a[i] = a[i].capitalize()
|
||||
return a
|
||||
|
||||
def compile_rules(dic):
|
||||
# compile regular expressions
|
||||
for i in dic:
|
||||
try:
|
||||
if re.compile("[(][?]iu[)]").match(i[0]):
|
||||
i += [True]
|
||||
i[0] = re.sub("[(][?]iu[)]", "(?u)", i[0])
|
||||
else:
|
||||
i += [False]
|
||||
i[0] = re.compile(i[0])
|
||||
except:
|
||||
if 'PYUNO_LOGLEVEL' in os.environ:
|
||||
print("Lightproof: bad regular expression: " + str(traceback.format_exc()))
|
||||
i[0] = None
|
||||
|
||||
def get_rule(loc):
|
||||
try:
|
||||
return langrule[pkg]
|
||||
except:
|
||||
langrule[pkg] = __import__("lightproof_" + pkg)
|
||||
compile_rules(langrule[pkg].dic)
|
||||
return langrule[pkg]
|
||||
|
||||
def get_path():
|
||||
return os.path.join(os.path.dirname(sys.modules[__name__].__file__), __name__ + ".py")
|
||||
|
||||
# [code]
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
lopts = {}
|
||||
lopts_default = {}
|
||||
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']
|
||||
@@ -0,0 +1,148 @@
|
||||
# -*- encoding: UTF-8 -*-
|
||||
dic = [
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])\\b[Ff][Oo][Oo]\\b(?![-\\w\\u2013\\u00AD])', 'bar', 'test', False, 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD]) ([.?!,:;)”]($| ))(?![-\\w\\u2013\\u00AD])', '\\1', 'Лишний пробел перед знаком пунктуации.', 'option(LOCALE,"space")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])([(“]) (?![-\\w\\u2013\\u00AD])', '\\1', 'Лишний пробел после знака пунктуации.', 'option(LOCALE,"space")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])(?P<Abc_1>[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)(?P<punct_1>[?!,:;%‰‱˚“”‘„])(?P<Abc_2>[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)(?![-\\w\\u2013\\u00AD])', '\\g<Abc_1>\\g<punct_1> \\g<Abc_2>', 'Пропущен пробел?', 'option(LOCALE,"space")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])(?P<Abc_1>[a-zA-ZA-Zа-яА-ЯА-Я][a-zA-ZA-Zа-яА-ЯА-Я]+)[.](?P<ABC_1>[A-ZА-Я][a-zA-Zа-яА-Я]+)(?![-\\w\\u2013\\u00AD])', '\\g<Abc_1>. \\g<ABC_1>', 'Пропущен пробел?', 'option(LOCALE,"space")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])[.]{3}(?![-\\w\\u2013\\u00AD])', '…', 'Символ многоточия.', 'option(LOCALE,"typographica")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(\\d+)x(\\d+)(?![-\\w\\u2013\\u00AD])', '\\1×\\2', 'Знак умножения.', 'option(LOCALE,"typographica")', 0],
|
||||
['(?u)((?<=[!?.] )|^)[-—] (?![-\\w\\u2013\\u00AD])', '– ', 'Заменить на тире (n-dash)?', 'option(LOCALE,"typographica")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD]) [-—]([ ,;])(?![-\\w\\u2013\\u00AD])', ' –\\1', 'Заменить на тире (n-dash)?', 'option(LOCALE,"typographica")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])[,]{2}(?![-\\w\\u2013\\u00AD])', ',', 'Две запятые подряд.', 'option(LOCALE,"comma")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])[ ](?P<abbr_1>руб|коп|грн|тыс|ул|кв|пос|ст|пр|просп|ед|экз|тел|исп)[ ](?![-\\w\\u2013\\u00AD])', ' \\g<abbr_1>. ', 'Точка после сокращений.', 'option(LOCALE,"abbreviation")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(^|\\b|(?P<punct_1>[?!,:;%‰‱˚“”‘„])|[.]) {2,3}(\\b|$)(?![-\\w\\u2013\\u00AD])', '\\1 ', 'Лишний пробел.', 'option(LOCALE,"space")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\"(\\w[^\\"“”]*[\\w.?!,])\\"(?![-\\w\\u2013\\u00AD])', '«\\1»', 'Кавычки.', 'option(LOCALE,"quotation")', 0],
|
||||
["(?u)(?<![-\\w\\u2013.,\\u00AD])\\B'(\\w[^']*[\\w.?!,])'\\B(?![-\\w\\u2013\\u00AD])", '‘\\1’', 'Кавычки.', 'option(LOCALE,"quotation")', 0],
|
||||
["(?u)(?<![-\\w\\u2013.,\\u00AD])(?P<Abc_1>[a-zA-Zа-яА-Я][a-zA-Zа-яА-Я]+)'(?P<w_1>\\w*)(?![-\\w\\u2013\\u00AD])", '\\g<Abc_1>’\\g<w_1>', 'Апостроф.', 'option(LOCALE,"quotation")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(?P<abc_1>[a-zа-я][a-zа-я]+)[ ]а[ ](?![-\\w\\u2013\\u00AD])', '\\g<abc_1>, а ', 'Пропущена запятая перед а.', 'option(LOCALE,"comma")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(?P<abc_1>[a-zа-я][a-zа-я]+)[ ]но[ ](?![-\\w\\u2013\\u00AD])', '\\g<abc_1>, но ', 'Пропущена запятая перед но.', 'option(LOCALE,"comma")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(?P<abc_1>[a-zа-я][a-zа-я]+), (?P<novvod_1>авось|буквально|будто|вдобавок|вдруг|ведь|вот|даже|исключительно|именно|небось|приблизительно|примерно|притом|почти|поэтому|просто|решительно|словно|якобы|в довершение|в конечном счете|в конечном счёте|вряд ли|все-таки|как будто|как бы|как раз|к тому же|между тем|по предложению|по постановлению|по решению),(?![-\\w\\u2013\\u00AD])', '\\g<abc_1> \\g<novvod_1>', 'Слова, не являющиеся вводными.', 'option(LOCALE,"comma")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(?P<abc_1>[a-zа-я][a-zа-я]+) (?P<vvod_1>итак|следовательно|во-первых|во-вторых|в-третьих|в-четвертых|в-четвёртых|в-пятых|пожалуйста|как нарочно|как исключение|как правило)(?![-\\w\\u2013\\u00AD])', '\\g<abc_1>, \\g<vvod_1>,', 'Слова, являющиеся вводными, выделяются запятыми.', 'option(LOCALE,"comma")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bложить\\b(?![-\\w\\u2013\\u00AD])', 'класть', 'Общие ошибки', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bляжь\\b(?![-\\w\\u2013\\u00AD])', 'ляг', 'Общие ошибки', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bехай\\b(?![-\\w\\u2013\\u00AD])', 'поезжай', 'Общие ошибки', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bихн(?P<abc_1>[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'их', 'Притяжательное местоимение не склоняется', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])жы(?![-\\w\\u2013\\u00AD])', 'жи', 'Через "и"', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])шы(?![-\\w\\u2013\\u00AD])', 'ши', 'Через "и"', 'option(LOCALE,"common")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнорд ост\\b(?![-\\w\\u2013\\u00AD])', 'норд-ост', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнорд вест\\b(?![-\\w\\u2013\\u00AD])', 'норд-вест', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bзюйд ост\\b(?![-\\w\\u2013\\u00AD])', 'зюйд-ост', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bзюйд вест\\b(?![-\\w\\u2013\\u00AD])', 'зюйд-вест', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bсеверо западн(?P<abc_1>[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'северо-западн\\g<abc_1>', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bюго западн(?P<abc_1>[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'юго-западн\\g<abc_1>', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bсеверо восточн(?P<abc_1>[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'северо-восточн\\g<abc_1>', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bюго восточн(?P<abc_1>[a-zа-я][a-zа-я]+)\\b(?![-\\w\\u2013\\u00AD])', 'юго-восточн\\g<abc_1>', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<adv1_1>кто|что|где|зачем|кое) нибудь\\b(?![-\\w\\u2013\\u00AD])', '\\g<adv1_1>-нибудь', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<adv1_1>кто|что|где|зачем|кое) либо\\b(?![-\\w\\u2013\\u00AD])', '\\g<adv1_1>-либо', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<adv1_1>кто|что|где|зачем|кое) то\\b(?![-\\w\\u2013\\u00AD])', '\\g<adv1_1>-то', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bточь в точь\\b(?![-\\w\\u2013\\u00AD])', 'точь-в-точь', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bиз за\\b(?![-\\w\\u2013\\u00AD])', 'из-за', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bвсё таки\\b(?![-\\w\\u2013\\u00AD])', 'всё-таки', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bкое кто\\b(?![-\\w\\u2013\\u00AD])', 'кое-кто', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bкое что\\b(?![-\\w\\u2013\\u00AD])', 'кое-что', 'Дефис? \\n http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%84%D0%B8%D1%81', 'option(LOCALE,"hyphen")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bво что бы то нe стало\\b(?![-\\w\\u2013\\u00AD])', 'во что бы то ни стало', 'Оборот', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bво чтобы то нe стало\\b(?![-\\w\\u2013\\u00AD])', 'во что бы то ни стало', 'Оборот', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bво чтобы то ни стало\\b(?![-\\w\\u2013\\u00AD])', 'во что бы то ни стало', 'Оборот', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bтакже как и\\b(?![-\\w\\u2013\\u00AD])', 'так же как и', 'Сложный союз.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bво избежании\\b(?![-\\w\\u2013\\u00AD])', 'во избежание', 'Сложный предлог.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bравноправны друг другу\\b(?![-\\w\\u2013\\u00AD])', 'равноправны друг c другом', 'Равноправны друг c другом.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни кто иной как\\b(?![-\\w\\u2013\\u00AD])', 'не кто иной, как', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни что иное как\\b(?![-\\w\\u2013\\u00AD])', 'не что иное, как', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне кто иной как\\b(?![-\\w\\u2013\\u00AD])', 'не кто иной, как', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне что иное как\\b(?![-\\w\\u2013\\u00AD])', 'не что иное, как', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bникто иной, не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bничто иное, не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнекто иной, не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнечто иное, не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнекто иной не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bнечто иное не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне кто иной, не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне что иное, не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне кто иной не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне что иное не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bникто иной, не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bничто иное, не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни кто иной, не\\b(?![-\\w\\u2013\\u00AD])', 'никто иной не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни что иное, не\\b(?![-\\w\\u2013\\u00AD])', 'ничто иное не', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(в) (течение) (реки|потока|воды|ручья)(?![-\\w\\u2013\\u00AD])', '\\1 течении \\3', 'Грамматическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(в) (течении) (часа|минуты|промежутка|секунды|дня|времени|недели|месяца|года|столетия|тысячелетия)(?![-\\w\\u2013\\u00AD])', '\\1 течение \\3', 'Грамматическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(в) (продолжении) (часа|минуты|промежутка|секунды|дня|времени|недели|месяца|года|столетия|тысячелетия|разговора|беседы)(?![-\\w\\u2013\\u00AD])', '\\1 продолжение \\3', 'Грамматическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bкакбудто(?![-\\w\\u2013\\u00AD])', 'как будто', 'Составная частица', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпо мимо\\b(?![-\\w\\u2013\\u00AD])', 'помимо', 'Пишется слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bна кануне\\b(?![-\\w\\u2013\\u00AD])', 'накануне', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bна подобие\\b(?![-\\w\\u2013\\u00AD])', 'наподобие', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bна против\\b(?![-\\w\\u2013\\u00AD])', 'напротив', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв низу\\b(?![-\\w\\u2013\\u00AD])', 'внизу', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bс низу\\b(?![-\\w\\u2013\\u00AD])', 'снизу', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bна верху\\b(?![-\\w\\u2013\\u00AD])', 'наверху', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв верху\\b(?![-\\w\\u2013\\u00AD])', 'вверху', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bс верху\\b(?![-\\w\\u2013\\u00AD])', 'сверху', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bс верх\\b(?![-\\w\\u2013\\u00AD])', 'сверх', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bс выше\\b(?![-\\w\\u2013\\u00AD])', 'свыше', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bсо гласно\\b(?![-\\w\\u2013\\u00AD])', 'согласно', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв глубь\\b(?![-\\w\\u2013\\u00AD])', 'вглубь', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв доль\\b(?![-\\w\\u2013\\u00AD])', 'вдоль', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв замен\\b(?![-\\w\\u2013\\u00AD])', 'взамен', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв место\\b(?![-\\w\\u2013\\u00AD])', 'вместо', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bза место\\b(?![-\\w\\u2013\\u00AD])', 'заместо', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни же\\b(?![-\\w\\u2013\\u00AD])', 'ниже', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпо середине\\b(?![-\\w\\u2013\\u00AD])', 'посередине', 'Слитно', 'option(LOCALE,"together")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<d2_1>\\d\\d)(?P<d_1>\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g<d2_1>\xa0\\g<d_1>', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<D_1>\\d|\\d\\d|\\d\\d\\d)(?P<d_1>\\d\\d\\d)(?P<d_2>\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g<D_1>\xa0\\g<d_1>\xa0\\g<d_2>', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\b(?P<D_1>\\d|\\d\\d|\\d\\d\\d)(?P<d_1>\\d\\d\\d)(?P<d_2>\\d\\d\\d)(?P<d_3>\\d\\d\\d)\\b(?![-\\w\\u2013\\u00AD])', '\\g<D_1>\xa0\\g<d_1>\xa0\\g<d_2>\xa0\\g<d_3>', 'Добавить разделитель разрядов (ISO)?', 'option(LOCALE,"numsep")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bблизкий свет\\b(?![-\\w\\u2013\\u00AD])', 'ближний свет', 'Опечатка?', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bближний друг\\b(?![-\\w\\u2013\\u00AD])', 'близкий друг', 'Опечатка?', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bщекотливая дилемма\\b(?![-\\w\\u2013\\u00AD])', 'щекотливый вопрос', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпоёт в одну дуду\\b(?![-\\w\\u2013\\u00AD])', 'поёт в один голос', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпоет в одну дуду\\b(?![-\\w\\u2013\\u00AD])', 'поёт в один голос', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bне упасть лицом в грязь\\b(?![-\\w\\u2013\\u00AD])', 'не ударить лицом в грязь', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bотдал руку и сердце\\b(?![-\\w\\u2013\\u00AD])', 'предложил руку и сердце', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bизбиение грешников\\b(?![-\\w\\u2013\\u00AD])', 'избиение младенцев', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bзакадычная подруга\\b(?![-\\w\\u2013\\u00AD])', 'лучшая подруга', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпромокли до костей\\b(?![-\\w\\u2013\\u00AD])', 'промокли до нитки', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпромёрзли до нитки\\b(?![-\\w\\u2013\\u00AD])', 'промёрзли до костей', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bпромерзли до нитки\\b(?![-\\w\\u2013\\u00AD])', 'промёрзли до костей', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bзамёрзли до нитки\\b(?![-\\w\\u2013\\u00AD])', 'замёрзли до костей', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bзамерзли до нитки\\b(?![-\\w\\u2013\\u00AD])', 'замёрзли до костей', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bглас, вопиющий в пустыне\\b(?![-\\w\\u2013\\u00AD])', 'глас вопиющего в пустыне', 'Фразеологизм.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bни кто иной, как\\b(?![-\\w\\u2013\\u00AD])', 'не кто иной, как', 'Оборот.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bрешит эту затянувшуюся проблему\\b(?![-\\w\\u2013\\u00AD])', 'ускорит затянувшееся решение проблемы', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bрешит затянувшуюся проблему\\b(?![-\\w\\u2013\\u00AD])', 'ускорит затянувшееся решение проблемы', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bподорожали цены\\b(?![-\\w\\u2013\\u00AD])', 'цены выросли', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bподнял тост\\b(?![-\\w\\u2013\\u00AD])', 'произнёс тост', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bулучшение отмеченных недостатков\\b(?![-\\w\\u2013\\u00AD])', 'устранение отмеченных недостатков', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bв этой связи\\b(?![-\\w\\u2013\\u00AD])', 'в связи с этим', 'Логическая ошибка.', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодел рубашку\\b(?![-\\w\\u2013\\u00AD])', 'надел рубашку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодеть рубашку\\b(?![-\\w\\u2013\\u00AD])', 'надеть рубашку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодела платье\\b(?![-\\w\\u2013\\u00AD])', 'надела платье', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодеть платье\\b(?![-\\w\\u2013\\u00AD])', 'надеть платье', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодела юбку\\b(?![-\\w\\u2013\\u00AD])', 'надела юбку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодеть юбку\\b(?![-\\w\\u2013\\u00AD])', 'надеть юбку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодел куртку\\b(?![-\\w\\u2013\\u00AD])', 'надел куртку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодела куртку\\b(?![-\\w\\u2013\\u00AD])', 'надела куртку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодеть куртку\\b(?![-\\w\\u2013\\u00AD])', 'надеть куртку', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодел пальто\\b(?![-\\w\\u2013\\u00AD])', 'надел пальто', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодела пальто\\b(?![-\\w\\u2013\\u00AD])', 'надела пальто', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bодеть пальто\\b(?![-\\w\\u2013\\u00AD])', 'надеть пальто', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bхрабрая идея\\b(?![-\\w\\u2013\\u00AD])', 'смелая идея', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bхрабрая мысль\\b(?![-\\w\\u2013\\u00AD])', 'смелая мысль', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])\\bхрабрая решение\\b(?![-\\w\\u2013\\u00AD])', 'смелая решение', 'Логическая ошибка', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD]), что угодно(?![-\\w\\u2013\\u00AD])', ' что угодно', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD]), как попало(?![-\\w\\u2013\\u00AD])', ' как попало', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])(не|совсем|совершенно|почти|именно), как(?![-\\w\\u2013\\u00AD])', '\\1 как', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])и то, и се(?![-\\w\\u2013\\u00AD])', 'и то и се', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])и то, и сё(?![-\\w\\u2013\\u00AD])', 'и то и сё', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни то, ни се(?![-\\w\\u2013\\u00AD])', 'ни то ни се', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни то, ни сё(?![-\\w\\u2013\\u00AD])', 'ни то ни сё', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни свет, ни заря(?![-\\w\\u2013\\u00AD])', 'ни свет ни заря', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])и так, и сяк(?![-\\w\\u2013\\u00AD])', 'и так и сяк', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])и туда, и сюда(?![-\\w\\u2013\\u00AD])', 'и туда и сюда', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни рыба, ни мясо(?![-\\w\\u2013\\u00AD])', 'ни рыба ни мясо', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни жив, ни мертв(?![-\\w\\u2013\\u00AD])', 'ни жив ни мертв', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?u)(?<![-\\w\\u2013.,\\u00AD])ни жив, ни мёртв(?![-\\w\\u2013\\u00AD])', 'ни жив ни мёртв', 'Запятая не нужна', 'option(LOCALE,"multiword")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])(?P<W_1>[-\\w]{3,}) \\1(?![-\\w\\u2013\\u00AD])', '\\g<W_1>', 'Повтор слова?', 'option(LOCALE,"dup")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])[Кк]В[Тт]/[Чч](?![-\\w\\u2013\\u00AD])', 'кВт⋅ч', 'Опечатка?', 'option(LOCALE,"common")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])[Мм]А/[Чч](?![-\\w\\u2013\\u00AD])', 'мА⋅ч', 'Опечатка?', 'option(LOCALE,"common")', 0],
|
||||
['(?iu)(?<![-\\w\\u2013.,\\u00AD])А/[Чч](?![-\\w\\u2013\\u00AD])', 'А⋅ч', 'Опечатка?', 'option(LOCALE,"common")', 0]
|
||||
]
|
||||
Reference in New Issue
Block a user