Page 6 of 29

Posted: Thu Mar 29, 2012 8:14 am
by nikspb
Уважаемый Instructor !
Спасибо за совет, извините, я был введён в заблуждение плагином Coder, который работает только после выделения.

проблемка с заменой

Posted: Wed May 16, 2012 10:20 pm
by Zavik
Помогите розрулить ситуацию:
У меня много XML файлов примерно такого типа
...текст
<aaa>
блок А
</aaa>
...текст
<bbb>
блок Б
</bbb>
...текст
мне в каждом файле надо скопировать блок Б на место блока А
у меня со строками работает а с блоками нет :(

Posted: Thu May 17, 2012 6:21 am
by rsod
поясните-ка по-хардкору, с чего бы вдруг отказали регулярки?
м?
Image
в предыдущей версии всё работало.
SearchReplace.js хоть и работает, но зачем тогда в программе делать опцию, которая вообще ничего не делает?

Posted: Thu May 17, 2012 7:42 am
by KDJ
rsod
Instead of: "$1", type: "\1".
AkelHistory-Rus.txt wrote:Изменено: при замене, с использованием регулярных выражений, обратная связь задействуется с помощью \n и \nn, вместо $n и $nn.

Re: проблемка с заменой

Posted: Fri May 18, 2012 7:30 am
by KDJ
Zavik wrote:У меня много XML файлов примерно такого типа
...текст
<aaa>
блок А
</aaa>
...текст
<bbb>
блок Б
</bbb>
...текст
мне в каждом файле надо скопировать блок Б на место блока А
у меня со строками работает а с блоками нет
Use script: SearchReplace.js.
What: (<aaa>)[\s\S]*?(</aaa>[\s\S]*?<bbb>)([\s\S]*?)(</bbb>)
With: $1$3$2$3$4
Select: Regular expressions

Posted: Sat May 19, 2012 6:40 am
by Zavik
What: (<aaa>)[\s\S]*?(</aaa>[\s\S]*?<bbb>)([\s\S]*?)(</bbb>)
With: $1$3$2$3$4
Select: Regular expressions
Не работает результат поиска 0

Posted: Sat May 19, 2012 8:42 am
by cnnnc
Zavik wrote:
What: (<aaa>)[\s\S]*?(</aaa>[\s\S]*?<bbb>)([\s\S]*?)(</bbb>)
With: $1$3$2$3$4
Select: Regular expressions
Не работает результат поиска 0
It's work. Make sure the end of string "(<aaa>)[\s\S]*?(</aaa>[\s\S]*?<bbb>)" no a more space.

Posted: Sat May 19, 2012 12:29 pm
by KDJ
Zavik, это работает.
cnnnc is right. You probably copied the text of regular expression with spaces.

Image

Posted: Tue May 22, 2012 7:41 am
by Zavik
Я что-то неправильно делаю у меня тоже на етом примере работает, а на реальном файле нет.
<?xml version="1.0" encoding="utf-8"?>
<UkrainianCadastralExchangeFile>
<AdditionalPart>
<ServiceInfo>
<Proprietors>
<ProprietorInfo>
<Authentication>
<NaturalPerson>
<FullName>
<LastName />
<FirstName />
</FullName>
<Passport>
<DocumentType />
<PassportNumber />
<PassportIssuedDate />
<IssuanceAuthority />
<PassportSeries />
</Passport>
<Address>
<Country>804</Country>
<Region />
<District />
<Settlement />
<Street />
<Building />
</Address>
</NaturalPerson>

</Authentication>
<ProprietorCode>19</ProprietorCode>
<PropertyAcquisitionJustification>
<Document>003</Document>
<DocumentDate />
<DocumentNumber />
<ApprovalAuthority />
</PropertyAcquisitionJustification>
</ProprietorInfo>
</Proprietors>
<LegalModeInfo>
<LegalModeType>2</LegalModeType>
<Duration>
<StartDate />
</Duration>
<Grantee>
<LegalEntity>
<Name>ТзОВ "Приват-Агро-Львів"</Name>
<EDRPOU>33176534</EDRPOU>
<Address>
<Country>804</Country>
<Region />
<District />
<Settlement />
<Street />
<Building />
</Address>
</LegalEntity>
</Grantee>
<Grantor>
<NaturalPerson>
<FullName>
<LastName>Сосновська</LastName>
<FirstName>Анна</FirstName>
<MiddleName>Семенівна</MiddleName>
</FullName>
<TaxNumber>16656706</TaxNumber>
<Passport>
<DocumentType>Паспорт</DocumentType>
<PassportNumber>535000</PassportNumber>
<PassportIssuedDate />
<IssuanceAuthority />
<PassportSeries>КВ</PassportSeries>
</Passport>
<Citizenship>804</Citizenship>
<Address>
<Country>804</Country>
<Region>Львівська</Region>
<District>Буський</District>
<Settlement>с. Чаниж</Settlement>
<Street />
<Building />
</Address>
</NaturalPerson>

</Grantor>
</LegalModeInfo>
</AdjacentUnits>
</ParcelInfo>
</Parcels>
</CadastralQuarterInfo>
</CadastralQuarters>
</CadastralZoneInfo>
</InfoPart>
</UkrainianCadastralExchangeFile>
Мне нужно інфу из блока <Grantor> закинуть в блок <Authentication>

Posted: Tue May 22, 2012 9:15 am
by KDJ
Zavik
What:

Code: Select all

(<Authentication>)[\s\S]*?(</Authentication>[\s\S]*?<Grantor>)([\s\S]*?)(</Grantor>)
With:

Code: Select all

$1$3$2$3$4

Posted: Tue May 22, 2012 3:55 pm
by Zavik
KDJ большое тебе СПАСИБО умный человек!!!
Выручил капец теперь не надо сидеть и копировать и вставлять по пол дня!!!! :P

Posted: Thu Jun 14, 2012 8:49 am
by VladSh
Instructor
Давно хотел спросить, но в спешке всегда забываю.

Code: Select all

Что: '
Чем: //
установлена галка "Слово целиком"
жму "Заменить всё", но ничего не происходит.
Я часто работаю с этой галкой, и снимать её каждый раз не хочется. Да и просто непонятно, почему, оно так работает - оно никак не противоречит "слову целиком". Можно ли это как-то изменить?

Posted: Thu Jun 14, 2012 10:03 am
by FeyFre
VladSh, ну наверное потому-что знак "'" сам является ограничителем "слов". Я даже и не знаю, в каком софте поиск сработает как Вы желаете.
Алгоритм поиска сначала съедает все ограничители(в том числе и "'") а потом ищет "слов". Естественно ничего из этого не получится.

Posted: Thu Jun 14, 2012 6:36 pm
by VladSh
FeyFre
MS Word ищет так.
При чём здесь ограничители? Я ввожу слово, оно состоит из одной одинарной кавычки, и оно должно находиться и меняться.
Точно также, как ввожу "Слово ", оно должно найти именно с пробелом, т.к. указано "Слово целиком" и заменить, но опять же ничего не происходит, хотя вхождения есть.
Имеющаяся логика никак не совпадает с ожиданиями. Если нужно учитывать разделители, то значит галка должна по идее быть. А то непонятно, ищешь целое вхождение, оно есть, а оказывается ищется совсем не то, что в поле "Что" стоит, а то, что программа там обработала (откуда я знаю, что она на самом деле ищет?).

Posted: Thu Jun 14, 2012 6:45 pm
by FeyFre
VladSh, "слово" - это слово, с точки зрения лингвистики. С точки зрения лингвистики запятые, кавычки, тирешечки,и другие знаки препинения не считаются возможными частями слов. Потому они такие поисковые фразы в принципе не будут найдены. Магнит в принципе не может притянуть воду.

MS Word.... А ещё если в MS Word сделать выделение начало в начале одного слова, конец в конце другого слова, а потом нажать кнопочку B, но вместо выделенного фрагмента полужирным станет весь 250 страничный документ. Причем думать он будет минут пять. А потом минут пять ещё будет делаться откат.
Мой баг круче чем Ваш :)