Замена кавычек; поиск и замена ч/з регулярку

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
Помогите, долблюсь целый день.
Как найти и заменить (точнее удалить) в таком тексте (из xml файла) кавычки
xml:
<Deed CompanyName="ПЪРВА ЧАСТНА ШКОЛА ЗА СПЕЦИАЛИЗИРАНИ КУРСОВЕ ПО ИКОНОМИКА "БУЛПРОГРЕС" - КАТЯ БОГОМИЛОВА" DeedStatus=
<Deed CompanyName=""Миртех"" DeedStatus="E" GUID="d18241c783174d1a907ed88653c69eb1" UIC="175197947" LegalForm="EOOD">
Отметил красным лишние кавычки
Такой регуляркой я все фирмы нахожу - (?<=CompanyName=").*(?="\ DeedStatus=")
Но как найти не весь текст в этих тегах, а только < " > и удалить её или заменить чем-то.
Просто парсинг xml глючит из-за дополнительных кавычек в тексте. Принимает за код и соответственно ответ "Не является допустимым маркером."
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Помогите, долблюсь целый день.
Как найти и заменить (точнее удалить) в таком тексте (из xml файла) кавычки
xml:
<Deed CompanyName="ПЪРВА ЧАСТНА ШКОЛА ЗА СПЕЦИАЛИЗИРАНИ КУРСОВЕ ПО ИКОНОМИКА [B][COLOR=rgb(226, 80, 65)]"[/COLOR][/B]БУЛПРОГРЕС[B][COLOR=rgb(226, 80, 65)]"[/COLOR][/B] - КАТЯ БОГОМИЛОВА" DeedStatus=
<Deed CompanyName="[B][COLOR=rgb(226, 80, 65)]"[/COLOR][/B]Миртех[B][COLOR=rgb(184, 49, 47)]"[/COLOR][/B]" DeedStatus="E" GUID="d18241c783174d1a907ed88653c69eb1" UIC="175197947" LegalForm="EOOD">
Отметил красным лишние кавычки
Такой регуляркой я все фирмы нахожу - (?<=CompanyName=").*(?="\ DeedStatus=")
Но как найти не весь текст в этих тегах, а только < " > и удалить её или заменить чем-то.
Просто парсинг xml глючит из-за дополнительных кавычек в тексте. Принимает за код и соответственно ответ "Не является допустимым маркером."
своей регуляркой находишь текст. В отдельной переменной чистишь его от кавычек. Затем в исходном тексте производишь замену найденного текста на чищенный.
Вероятно, удобнее всего будет сразу найти все совпадения в список, а потом уже этот список перебрать с алгоритмом, описанным выше
 

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
Есть ли вариант просто найти и удалить все кавычки между этими тегами?
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Тоже с этим проблема
1605631316597.png
Делаю, где удалить, а где заменить.
У меня парсер серий ntv.ru/serial/Pes/m78480/o526016/video/ там как раз кавычки, заменяю
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Есть ли вариант просто найти и удалить все кавычки между этими тегами?
теоретически, через группоую регулярку можно попробовать. Но работать будет строго с парой лишних авычек
 

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
теоретически, через группоую регулярку можно попробовать. Но работать будет строго с парой лишних авычек
Как видно из примерных строк кода, работник/и гос служб тупо ввели кавычки в начале и конце - CompanyName=""Миртех"". Тут не проблема, нашёл две подряд и заменил на одну.
В других случаях, встречаются кавычки в названии фирмы в середине текста -
CompanyName="ПЪРВА ЧАСТНА ШКОЛА ЗА СПЕЦИАЛИЗИРАНИ КУРСОВЕ ПО ИКОНОМИКА "БУЛПРОГРЕС" - КАТЯ БОГОМИЛОВА" DeedStatus=
1) Как такие кавычки найти и заменить/удалить из текста между тегами? или 2) Как найти и заменить/удалить кавычки вместе с текстом в середине предложения (т.е. названия фирмы)
Просто, файлов более 1К. Надо автоматизировать.
Как изменить мою регулярку - (?<=CompanyName=").*(?="\ DeedStatus=") именно ".*" эту часть. Чтобы искать не всё что есть, а только кавычки или что заключено в кавычки и менять/удалять.
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Как видно из примерных строк кода, работник/и гос служб тупо ввели кавычки в начале и конце - CompanyName=""Миртех"". Тут не проблема, нашёл две подряд и заменил на одну.
В других случаях, встречаются кавычки в названии фирмы в середине текста -
CompanyName="ПЪРВА ЧАСТНА ШКОЛА ЗА СПЕЦИАЛИЗИРАНИ КУРСОВЕ ПО ИКОНОМИКА "БУЛПРОГРЕС" - КАТЯ БОГОМИЛОВА" DeedStatus=
1) Как такие кавычки найти и заменить/удалить из текста между тегами? или 2) Как найти и заменить/удалить кавычки вместе с текстом в середине предложения (т.е. названия фирмы)
Просто, файлов более 1К. Надо автоматизировать.
Как изменить мою регулярку - (?<=CompanyName=").*(?="\ DeedStatus=") именно ".*" эту часть. Чтобы искать не всё что есть, а только кавычки или что заключено в кавычки и менять/удалять.
67361
(CompanyName="[^"]*)"([^"]+)"([^"]*"\s+DeedStatus)
$1$2$3

Можешь попробовать так, но это будет работать строго только на пару лишних кавычек
 
  • Спасибо
Реакции: nicanil и Sergodjan

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
Возможно сработало; сейчас проверю. Но нарисовался другой костыль. Оказывается, не только меду тегами названия фирм записи с дополнительными кавычками.
C#:
Description="Друг:Удостоверение за актуално състояние на Фондация "Инж Куб""/>
<Document ApplicationType="G1" Description="Друг:Удостоверение за актуално състояние на Фондация "Инж Куб""/>
Есть возможность только в кирилице искать лишние кавычки? [а-я,А-Я] Как это правильно вставить в регулярку?
 

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
Так вроде работает
C#:
("[а-я,А-я,^"]*)"([а-я,А-я,^"]+)"([а-я,А-я,^"]*"\s)
 

devas111

Client
Регистрация
28.01.2012
Сообщения
201
Благодарностей
9
Баллы
18
Вот так парсит - ("[^"]*)"([^"]+\s)"([^"]*"\s)
C#:
"ПЪРВА ЧАСТНА ШКОЛА ЗА СПЕЦИАЛИЗИРАНИ КУРСОВЕ ПО ИКОНОМИКА "БУЛПРОГРЕС" - КАТЯ БОГОМИЛОВА"
А так - ("[а-я,А-Я,^"]*)"([а-я,А-Я,^"]+)"([^"]*"\s)
C#:
""Миртех""
Спасибо doc
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)