|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Регулярное выражение |
|
.NET - Регулярное выражение
|
В Поисках Истины Сообщения: 802 |
Добрый день.
Есть Kml файл вида:
Нужно написать регулярное выражение чтобы найти все такие блоки. С регулярными выражениями очень туго ![]() Пробовал так: string textOfFile = System.IO.File.ReadAllText(@"boundary.kml"); Regex r = new Regex(@"<Placemark>\d\D*</Placemark>"); MatchCollection matches = r.Matches(textOfFile); Попробовал немного иначе: Находит одно совпадение! Я так понимаю между первым открытием тега и последним закрытием! Прошу вашей помощи, подскажите как сделать на первом уровне, далее, думаю, сам разберусь. Спасибо! |
|
------- Отправлено: 16:59, 26-06-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Так (код на WSH):
Option Explicit
Dim strValue
Dim objMatch
strValue = "aaa0bbb-,-1-,-2-,-ccc-,-3-,-4-,-ddd5-,-6-,-eee-,-7-,-8fff-,-9eee10-,-fff-,-1-,-2-,-3-,-4-,-"
With WScript.CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "(?=\d)[\d,-]*\d"
For Each objMatch In .Execute(strValue)
WScript.Echo objMatch.Value
Next
End With
WScript.Quit 0
Цитата pva:
Добавлено: pva, проверил ещё раз, поменяв порядок альтернатив. Так: — работает. |
|
Отправлено: 20:58, 08-08-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Цитата LilLoco:
Цитата:
![]() |
||
Отправлено: 08:26, 09-08-2013 | #12 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 08:31, 09-08-2013 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата LilLoco:
Option Explicit
Dim strValue
Dim objMatch
strValue = ",-1-,-2-,"
With WScript.CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "(?=\d)[\d,-]*\d"
For Each objMatch In .Execute(strValue)
WScript.Echo objMatch.Value
Next
End With
WScript.Quit 0
Стоп. Что значит «ввести/внести» в Вашей трактовке? |
|
Отправлено: 18:43, 09-08-2013 | #14 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Ну я имею ввиду, что можно в текстовое поле ввести например ,8,9
А необходимо чтобы первый символ - была только цифра. Вот как то так. Прошу прощения за изложение мыслей так "непонятно" - сказывается конец рабочей недели(( |
------- Отправлено: 20:16, 09-08-2013 | #15 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата Iska:
var re = /^\d$|^\d[\d\,\-]*\d$/; var test = [ "312321", "3", "31,23-21", "31232,1", "312321,", "-,312321", "3-", "3-,,,,5", "3----6", "-3-" ] for(i in test) { WScript.Echo(test[i] + ":\t\t\t" + re.exec(test[i])); } 312321: 312321 3: 3 31,23-21: 31,23-21 31232,1: 31232,1 312321,: null -,312321: null 3-: null 3-,,,,5: 3-,,,,5 3----6: 3----6 -3-: null Цитата LilLoco:
|
||
Последний раз редактировалось pva, 09-08-2013 в 22:12. Отправлено: 22:07, 09-08-2013 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата LilLoco:
Цитата pva:
|
||
Отправлено: 00:50, 10-08-2013 | #17 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата pva:
Видимо регулярные выражения совершенно не для меня ![]() |
||
------- Отправлено: 12:45, 11-08-2013 | #18 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать LilLoco, Регулярные выражения - очень простая штука. Поиграйся с поиском-заменой в текстовом редакторе (например notepad++) и всё поймёшь. Это очень удобный и для поиска и замены текста инструмент.
Но их функционал ограничивается выявлением шаблона в тексте, не более. Например регулярным выражением нельзя выяснить, что диапазон 999-100 задан неверно. А кодом, например, можно сделать как на скриншоте (аттач) |
Отправлено: 13:24, 11-08-2013 | #19 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Ребята, не подскажите, как можно сделать заливку этого участка по координатам?
Или залить участок с прозрачностью 50%. ? это тут делается? <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style> |
Отправлено: 09:36, 04-05-2016 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Батничек для настройки "доверенной зоны" IE6 и "добавить... в сетевое окружение". | RUVATA | Скриптовые языки администрирования Windows | 0 | 21-09-2010 10:16 | |
[решено] Как из текста выбрать все выражения вида "{...}"? | evg64 | AutoIt | 1 | 26-12-2009 23:38 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 | |
Поиск в яндекс.xml (выделено из "Зацените сайт!") | Vampire | Вебмастеру | 21 | 11-09-2006 20:31 | |
"Вход в систему недоступен" или "Не найден сервер для проверки пароля входа в сеть" | rooty | Microsoft Windows NT/2000/2003 | 8 | 23-08-2005 02:18 |
|