Имя: Пароль:
1C
1С v8
подскажите по регулярке
0 DES
 
23.01.19
20:43
есть  pattern '/^[A-Z-ĂÎȘȚÂ .-]+$/u'.
Почему ругается на 'ASDFG ASDFG' в XML при проверке на схему

<namettl>ASDFG ASDFG</namettl>

ERROR: Element 'namettl': [facet 'pattern'] The value 'ASDFG ASDFG' is not accepted by the pattern '/^[A-Z-ĂÎȘȚÂ .-]+$/u'.
ERROR: Element 'namettl': 'ASDFG ASDFG' is not a valid value of the local atomic type.
1 Cyberhawk
 
23.01.19
20:44
Есть же сайт
2 DES
 
23.01.19
20:49
какой?
3 palsergeich
 
23.01.19
20:50
Ты про XDTO?
В XDTO проверка куцая.
http://forum.infostart.ru/forum9/topic147761/message1969231/#message1969231 конкретно в твоем случае валит - $
4 Cyberhawk
 
23.01.19
20:51
(2) Проверка регулярки и содержимого
5 palsergeich
 
23.01.19
20:53
(4) Тут не в этом дело.
У него судя по сообщению facet 'pattern - вылетает при проверки схемы XDTO. 1с не умеет в $
6 DES
 
23.01.19
20:54
нет, я делаю в 1с8 xml
потом notepad++ проверяю по схеме, вот там и ругается
7 AlvlSpb
 
23.01.19
20:55
(5) Почему не умеет $ ? Меня смущает слэш / в начале шаблона. Что это?
8 AlvlSpb
 
23.01.19
20:58
(0) Словами изложи какое условие надо (шаблон)
9 palsergeich
 
23.01.19
20:58
[A-Z-ĂÎȘȚÂ .-] вот так работает
10 palsergeich
 
23.01.19
20:59
И вот ^[A-Z-ĂÎȘȚÂ .-]+$ работает (не в 1с)
11 DES
 
23.01.19
20:59
мне не регулярку нужно исправить а строку под нее
12 palsergeich
 
23.01.19
21:01
(11) Тебе надо ты и поправляй)
13 AlvlSpb
 
23.01.19
21:02
(11) Так как исправишь строку если шаблон неверен? Откуда этот шаблон? И вопрос (8) остается
14 DES
 
23.01.19
21:02
(13)  шаблон с сайта на который нужно загружать этот xml
15 palsergeich
 
23.01.19
21:03
Меня смущает /^ и $/u
/^ экранированный символ начала строки

$/u после конца строки экранируется u
16 palsergeich
 
23.01.19
21:05
https://ru.infobyip.com/regularexpressioncalculator.php да их тысячи на проверку регулярок
https://www.freeformatter.com/xml-validator-xsd.html валидность на схему. Их тоже много
17 palsergeich
 
23.01.19
21:06
http://www.utilities-online.info/xsdvalidation/#.XEis8lwzaUk
Вот тут можно проверить валидность самой схемы в принципе. Ну и соответствие XML схеме
18 AlvlSpb
 
23.01.19
21:06
(14) Уверен, что шаблон для 1с? Просто, могу ошибаться, но не знаю я символа / в 1с. Если это сам слэш (типа надо найти /b) то должно быть //.
19 DES
 
23.01.19
21:09
(18) не прием тут 1с8.
в 1с8 генирится xml, а проверятся не в 1с8
20 palsergeich
 
23.01.19
21:09
(19) А ты уверен что на сайте нет ошибки?
21 AlvlSpb
 
23.01.19
21:10
Пробуй (10) и даже (11) должно работать. По поводу (11) не согласен, много раз использовал и символ начала строки ^ и символ конца строки $ и все работает
22 palsergeich
 
23.01.19
21:12
просто шаблон очень странный для фассета. там вроде как после конца строки не может быть символа.
(21) у меня 3 месяца назад не взлетел ни ^  ни $
23 DES
 
23.01.19
21:12
все нашел !
нужно экранировать тире
^[A-Z-ĂÎȘȚÂ .\-]+$
наверно так имелось ввиду на сайте
24 AlvlSpb
 
23.01.19
21:13
(23) Блин! Ну говорил же СЛЭШ!!!
25 palsergeich
 
23.01.19
21:13
ЛОООЛ
/^[A-Z-ĂÎȘȚÂ .-]+$/u ну не похоже на ^[A-Z-ĂÎȘȚÂ .\-]+$
26 AlvlSpb
 
23.01.19
21:16
(25) Объясни, пож, что может означать /^ (зачем слэш перед символом начала строки) и /u - это вообще не понимаю. Регулярку изучал сам по книжке, могу чего-то незнать
27 DES
 
23.01.19
21:16
ну тогда не знаю
28 DES
 
23.01.19
21:17
в схеме так описано
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="/^[A-Z-ĂÎȘȚÂ .\-]+$/u"/>
</xs:restriction>
</xs:simpleType>
29 DES
 
23.01.19
21:22
(16) проверяю схему на сайте указанном - дает ошибку
InvalidRegex: Pattern Value '/^[A-Z-ĂÎȘȚÂ .-]+$/u' Is Not A Valid Regular Expression. The Reported Error Was: ''-' Is An Invalid Character Range. Write '\-'.'.
30 DES
 
23.01.19
21:23
куда то девает экран перед тире
31 AlvlSpb
 
23.01.19
21:23
(28) Теперь въехал ))). Это не регулярка в 1С. И черт его знает что там имели в виду
32 DES
 
23.01.19
21:27
вроде бы простое выражение, а что значить $ ?
33 palsergeich
 
23.01.19
21:35
$ конец строки
34 AlvlSpb
 
23.01.19
22:01
(32) Вот это ^[A-Z-ĂÎȘȚÂ .-]+$ читается (хотя и есть нюансы).
Словами: Найти строку которая начинается (символ начала строки ^) с любой заглавной латинской буквы или тире или символов ĂÎȘȚÂ или точки или тире  (все что в квадратных скобках). Дальше один или несколько символов которые стоят перед + и Конец строки $
Т.е. шаблону будут соответствовать строки примерно:АА,ССС, .., -----, ÎÎ
35 palsergeich
 
23.01.19
22:06
Там еще пробел есть, его просто видно плохо, но он есть.
Короче если по простому - заглавные буквы латинского алфавита + ĂÎȘȚÂ + символ тире и точка (она почему то не экранирована, ибо тогде убивает все другие множества). По простому - большие буквы без цифр
36 palsergeich
 
23.01.19
22:07
и без спец символов
37 DES
 
23.01.19
22:36
а какого черта сайт убирает слеш перед тире и пишет поставьте слеш
Write '\-'.'.
38 palsergeich
 
23.01.19
22:38
39 DES
 
23.01.19
23:29
да, этот
40 AlvlSpb
 
24.01.19
00:08
(35) "и точка (она почему то не экранирована" ©
Все спец знаки внутри квадратных скобок имеют прямое значение символа а не спец символа. Т.е. точка (.) - это точка, звездочка (*) - это не любой знак, а только звездочка. Чтобы указать в квадратных скобках спец символ надо поставить обратный слэш (\*). Но все это верно для регулярных выражений в 1С!
(37) Так что могу предположить, что \- в твоем шаблоне всего навсего обратный слэш и тире как первый знак строки, т.к. тире (-) нет в списке спец символов
[ ] \ / ^ $ . | ? * + ( ) { }
41 AlvlSpb
 
24.01.19
00:10
Или....., что очень вероятно и скорей всего, приведенный пример не на 1С и надо искать инфу по регулярке не на форуме по 1С
42 DES
 
24.01.19
20:23
Начал делать через XDTO - не пропускает даже такое имя SMIT GANS
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший