Автор Тема: [RegExp] Как определить тип строки [RU or EN]  (Прочитано 4217 раз)

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

Оффлайн f4llen [?]

  • Осваивающий
  • **
  • Сообщений: 160
  • Репутация: 41
  • Олл фо ЛулзЪ
    • Награды
Ка при помощи StringInStr RegExp определить тип строки (на русском или на английском накарябано напечатано)?
Leet Chat - программа для общения в локальной сети

Не оказываю тех. поддержку через форум - для этого есть ЛСД и Асекью

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

[RegExp] Как определить тип строки [RU or EN]
« Отправлен: Июль 30, 2010, 13:39:18 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #1, Отправлен: Июль 30, 2010, 13:56:24 »
sforce5
У меня так получилось:
Код: AutoIt [Выделить]
$sStringRU = 'Определить тип строки на русском или на английском языке.'
$iCheckRU = StringRegExp($sStringRU, '[а-я,А-Я]', 0)
If $iCheckRU Then
    MsgBox(0, 'RU', 'Rus')
Else
    MsgBox(0, 'No RU', ' No Rus')
EndIf

$sStringEN = 'AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.'
$iCheckEN = StringRegExp($sStringEN, '[a-z,A-Z]', 0)
If $iCheckEN Then
    MsgBox(0, 'EN', 'EN')
Else
    MsgBox(0, 'No EN', ' No EN')
EndIf


Оффлайн f4llen [?]

  • Осваивающий
  • **
  • Сообщений: 160

  • Автор темы
  • Репутация: 41
  • Олл фо ЛулзЪ
    • Награды
Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #2, Отправлен: Июль 30, 2010, 15:16:46 »
А как насчёт присутствия в строке посторонних символов, вроде ',\.\!' тысячи их

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7830
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #3, Отправлен: Июль 30, 2010, 16:22:00 »
Для этого обычно используется StringIsASCII.

А через RegExp можно также проверять не смешан ли текст:

Код: AutoIt [Выделить]
$sString = 'Русский и English.'
;$sString = 'Русский.'
;$sString = 'English.'

$iOnlyRu = StringRegExp($sString, '(?i)^[^a-z]+[а-яА-Я]+[^a-z]+$')
$iOnlyEn = StringRegExp($sString, '(?i)^[^а-яА-Я]+[a-z]+[^а-яА-Я]+$')
$iRuAndEn = StringRegExp($sString, '(?i)([а-яА-Я]+.*[a-z]|[a-z]+.*[а-яА-Я])')


$sString = StringFormat('Rus Only:\t\t%s\nEng Only:\t\t%s\nRus and Eng:\t%s', $iOnlyRu, $iOnlyEn, $iRuAndEn)

MsgBox(64, '', $sString)



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


AutoIt is simple, subtle, elegant.


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


Мои работы

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

Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #3 Отправлен: Июль 30, 2010, 16:22:00 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #4, Отправлен: Июль 30, 2010, 16:39:45 »
sforce5
Можно еще так попробовать:
Код: AutoIt [Выделить]
$sString = '/\Определить!"№;% тип:?*() строки <>|\\/.,на русском или на английском языке. AutoIt~`@#$%^&*()'
$aRU = StringRegExp($sString, '[а-яА-Я]', 3)
$aEN = StringRegExp($sString, '[a-zA-Z]', 3)
$iCheckRU = UBound($aRU)
$iCheckEN = UBound($aEN)
MsgBox(0, 'Тест', 'В Вашем тексте:' & @CRLF & 'русских букв: ' & $iCheckRU & ' штук.' & @CRLF & _
        'английских букв: ' & $iCheckEN & ' штук.' & @CRLF & 'Вывод о том, какой язык, делайте сами :)')


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

Re: [RegExp] Как определить тип строки [RU or EN]
« Ответ #4 Отправлен: Июль 30, 2010, 16:39:45 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
4658 Просмотров
Последний ответ Март 11, 2010, 13:22:05
от madmasles
7 Ответов
4895 Просмотров
Последний ответ Июль 25, 2010, 16:59:28
от f4llen
4 Ответов
10842 Просмотров
Последний ответ Октябрь 12, 2010, 00:53:16
от asdf8
0 Ответов
2094 Просмотров
Последний ответ Сентябрь 05, 2011, 12:35:05
от hodosh
3 Ответов
6572 Просмотров
Последний ответ Март 25, 2012, 01:22:03
от asdf8
14 Ответов
6936 Просмотров
Последний ответ Июль 03, 2012, 00:48:36
от Garrett
3 Ответов
1619 Просмотров
Последний ответ Июнь 28, 2015, 18:01:32
от CreatoR
1 Ответов
871 Просмотров
Последний ответ Апрель 04, 2017, 11:28:02
от InnI
2 Ответов
237 Просмотров
Последний ответ Июнь 29, 2018, 14:38:33
от Vovsla
5 Ответов
295 Просмотров
Последний ответ Сентябрь 21, 2018, 09:37:24
от joiner