Автор Тема: [RegExp] Проблема со проверкой имени файла  (Прочитано 3572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн my.EXpr [?]

  • Новичок
  • *
  • Сообщений: 7
  • Репутация: 0
  • Пол: Мужской
  • Provehito In Altum
    • Награды
Доброго времени суток.
Элементарная проблема. Есть такой вот код. Не могу понять почему строка подходит под данный шаблон, ведь я ограничиваюсь только латинскими буквами. Символа подчеркивания не указано.

Код: AutoIt [Выделить]
$sText = 'Agatha_Modern'
$sPattern = '[a-z]'
If StringRegExp($sText, $sPattern, 0) Then MsgBox(0, "result", "OK")
 


Спасибо.
« Последнее редактирование: Декабрь 04, 2011, 12:00:31 от my.EXpr »
Не создавай то, чем не сможешь управлять. (c)

Русское сообщество AutoIt

[RegExp] Проблема со проверкой имени файла
« Отправлен: Декабрь 04, 2011, 11:54:09 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #1, Отправлен: Декабрь 04, 2011, 12:11:35 »
my.EXpr,
А так?
Код: AutoIt [Выделить]
Dim $aText[4] = [3, 'Agatha_Modern', 'AgathaModern', 'agathamodern']

$sPattern = '^[a-z]+$'
$sPattern_1 = '(?i)^[a-z]+$'

ConsoleWrite($sPattern & @LF)
For $i = 1 To $aText[0]
    ConsoleWrite($aText[$i] & @TAB & StringRegExp($aText[$i], $sPattern) & @LF)
Next
ConsoleWrite($sPattern_1 & @LF)
For $i = 1 To $aText[0]
    ConsoleWrite($aText[$i] & @TAB & StringRegExp($aText[$i], $sPattern_1) & @LF)
Next


Оффлайн gregaz [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1166
  • Репутация: 298
  • Пол: Мужской
    • Награды
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #2, Отправлен: Декабрь 04, 2011, 12:42:10 »
my.EXpr  [?]
Цитировать
Не могу понять почему строка подходит под данный шаблон

Твое выражение подтверждает, что в строке имется по- крайней мере одна буква латинского алфавита    "[a-z]"
Самая большая проблема – её сформулировать. 

Оффлайн my.EXpr [?]

  • Новичок
  • *
  • Сообщений: 7

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Provehito In Altum
    • Награды
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #3, Отправлен: Декабрь 04, 2011, 13:55:50 »
Большое спасибо за быстрые ответы. Необходимо сделать поиск любого возможного имени файла (какое только возможно). Ответы навели меня на банальное решение - простое перечисление необходимых символов. Проблема была в символах начало и конца строки, вернее их отсутствия. Можно еще конечно упростить шаблон, воспользовавшись классами вроде [:alnum:]. Вопрос решен.

Код: AutoIt [Выделить]
$sText = 'Agatha_Modern'
$sPattern = "^[\Q`[email protected]#$%^&()-_=+[]{};',.\E\sa-zA-Zа-яА-Я\d]+$"
If StringRegExp($sText, $sPattern, 0) Then MsgBox(0, "result", "OK")
 


Русское сообщество AutoIt

Re: [RegExp] Проблема со проверкой имени файла
« Ответ #3 Отправлен: Декабрь 04, 2011, 13:55:50 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #4, Отправлен: Декабрь 04, 2011, 15:20:39 »
my.EXpr  [?]
Цитировать
Необходимо сделать поиск любого возможного имени файла
Для этого можно использовать шаблон:

Код: AutoIt [Выделить]
ConsoleWrite(_FileNameIsValid('file name.txt') & @LF)

Func _FileNameIsValid($sFileName)
    Return StringRegExp($sFileName, '^[^*?\\/|:<>"]+$')
EndFunc



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн my.EXpr [?]

  • Новичок
  • *
  • Сообщений: 7

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • Provehito In Altum
    • Награды
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #5, Отправлен: Декабрь 05, 2011, 05:06:53 »
CreatoR  [?]
Цитировать
Для этого можно использовать шаблон:
да, но хотелось бы ограничиться только стандартной латиницей и кириллицей (минуя подобные символы Ä, которые тоже возможны и воспринимаются ОС не чуть не хуже).


Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2720
  • Репутация: 1139
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: [RegExp] Проблема со проверкой имени файла
« Ответ #6, Отправлен: Декабрь 05, 2011, 05:45:39 »
my.EXpr
Правильное имя это то, которое поддерживает система. Если нужено по своим понятиям, то тут только от фантазии зависит. А вообще используй RegExp, довольно наглядно показывает результаты и легко переключать режимы поиска и отправку в буфер готовой строки. До кучи справка и набор готовых семплов.

Русское сообщество AutoIt

Re: [RegExp] Проблема со проверкой имени файла
« Ответ #6 Отправлен: Декабрь 05, 2011, 05:45:39 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
40 Ответов
17228 Просмотров
Последний ответ Июнь 06, 2010, 08:29:32
от Vendor
7 Ответов
5867 Просмотров
Последний ответ Сентябрь 13, 2011, 19:40:50
от gregaz
15 Ответов
9375 Просмотров
Последний ответ Август 27, 2011, 10:48:20
от [email protected]@f
3 Ответов
2960 Просмотров
Последний ответ Октябрь 04, 2011, 10:16:20
от gregaz
2 Ответов
3068 Просмотров
Последний ответ Ноябрь 10, 2011, 15:36:36
от ---Zak---
4 Ответов
3625 Просмотров
Последний ответ Октябрь 19, 2012, 18:56:12
от AZJIO
4 Ответов
2548 Просмотров
Последний ответ Февраль 28, 2013, 21:19:05
от madmasles
16 Ответов
5881 Просмотров
Последний ответ Июль 15, 2013, 16:34:48
от firex
2 Ответов
2461 Просмотров
Последний ответ Март 28, 2016, 15:31:58
от Alofa
16 Ответов
681 Просмотров
Последний ответ Апрель 18, 2018, 11:28:35
от Serega1383