2014-02-21 4 views
0

У меня есть инструмент XMLexport (PHP), который экспортирует данные в поле XML.Удалите ряд чисел, по которым регулярное выражение/регулярное выражение

Возможно найти и заменить некоторые ненужные символы. Но в этом случае символы не всегда одинаковы.

E.g. <xmlfield> {"1596":" maat XL </xmlfield> --> this must be <xmlfield> maat XL </xmlfield>

Поэтому я хочу удалить {"1596":". Изменяется только числовой код, например. {"1595":" {"844":".

Решение «найти и заменить» с регулярным выражением, но я не знаю, какой код мне нужно использовать.

Пожалуйста, дайте мне знать, можете ли вы помочь мне в этом.

ответ

0

регулярное выражение, чтобы сделать это было бы: \{"\d+"\:" В зависимости от инструмент или язык программирования, который вы используете, вам, возможно, придется избегать и ". Java также должен избегать \ с другим \.

Если вы не знакомы с регулярным выражением, позвольте мне объяснить это коротко:

Некоторые символы, такие как { или : должны быть экранированы (поэтому мы добавим \ до этого). \d соответствует любой цифре (0-9), а + означает, что она должна быть как минимум на одну цифру (но, возможно, больше).

Вы можете использовать онлайн-инструменты, такие как RegExPlanet, чтобы создавать и тестировать ваше регулярное выражение.

Если вы хотите, чтобы найти эти строки только внутри <xmlfield> тегов (без других вложенных тегов в нем) вы могли бы использовать что-то вроде этого: <xmlfield>[^<]*\{"\d+"\:"[^<]*</xmlfield>

+0

Привет, Себастьян, большое спасибо! Это решение. Я использовал/[^ <] * \ {"\ d +" \: "[^ <] */и работает отлично. :) – user3337430

+0

@ user3337430, пожалуйста, примите его как« правильный »ответ. , – SebastianH

0

Я использую этот сайт, когда мне нужно работать регулярные выражения: RegExr

этот код заменит то, что вы хотите, хотя:

Regex reg = new Regex(@"\{\""\d+\"":\"""); 
reg.Replace(xmlString, string.Empty); 
+0

Спасибо за ваш ответ! Я проверю это. – user3337430

Смежные вопросы