|
Помогите с регулярным выражением. |
☑ |
0
prorokk
01.08.14
✎
12:35
|
На входе строчка "getpr('2EA03EE6','-4'); return false;"
Из нее нужно вытащить
2EA03EE6
-4
Но БЕЗ '
Нацарапал:
'([^']*)'
Выдает с ' (((
|
|
1
Cube
01.08.14
✎
12:37
|
Это на 1С надо?
|
|
2
Ёпрст
гуру
01.08.14
✎
12:38
|
[^A-Za-zА-Яа-я0-9]
|
|
3
Fragster
гуру
01.08.14
✎
12:38
|
'([^']+)'
submatches[0]
|
|
4
Ёпрст
гуру
01.08.14
✎
12:39
|
а чорт, не о том подумал..
|
|
5
Fragster
гуру
01.08.14
✎
12:40
|
(1)
|
|
6
prorokk
01.08.14
✎
12:45
|
(1) Для регулярки RegExp = Новый COMОбъект("VBScript.RegExp");
(3) (5) А можешь на мыло кинуть andrei_prorok@mail.ru
Но все онлайн тестеры выдают с '
|
|
7
Fragster
гуру
01.08.14
✎
12:47
|
(6)
RegExp = Новый COMОбъект("VBScript.RegExp"); // Объект для использования регулярных выражений
RegExp.IgnoreCase = ИгнорироватьРегистр; //Игнорировать регистр
RegExp.Global = ИскатьВсеВхождения; //Поиск всех вхождений шаблона
RegExp.MultiLine = Многострочный; //Многострочный режим
RegExp.Pattern = Паттерн; //Ищем строку вида " 12/34/5678 "
Если ПустаяСтрока(Замена) Тогда
Matches= RegExp.Execute(ГдеИщем);
ОчиститьСообщения();
Для Сч = 0 по Matches.Count()-1 Цикл
Match = Matches.Item(Сч);
Сообщить("""" + Match.Value+ """");
Submatches = Match.Submatches;
Для сч1=0 по Submatches.Count()-1 Цикл
Submatch = Submatches.Item(Сч1);
Сообщить(Символы.Таб + """" + Submatch+ """");
КонецЦикла;
КонецЦикла;
Иначе
Сообщить(RegExp.Replace(ГдеИщем, Замена));
КонецЕсли;
|
|
8
prorokk
01.08.14
✎
12:54
|
(7) На выходе
"'2EA03EE6'"
|
|
9
prorokk
01.08.14
✎
12:55
|
Ведь можно без Replace обойтись?
|
|
10
prorokk
01.08.14
✎
12:59
|
Всем спасибо) Решил так
(?<=')([^']+)(?=')
|
|
11
prorokk
01.08.14
✎
13:00
|
(((((( Произошла исключительная ситуация (0x800a1399)
|
|
12
prorokk
01.08.14
✎
13:06
|
На этот шаблон онлайн выдает что нужно (?<=')([^'|,]+)(?=')
А VBScript.RegExp выдает ошибку( Почему?
|
|
13
Fragster
гуру
01.08.14
✎
13:12
|
(9) субматчес
|
|
14
prorokk
01.08.14
✎
13:18
|
(13) Спасибо!!!
|
|