1

Тема: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

То есть чтоб не киррилицу
То есть например у меня есть текст
*
Я приобрел отличный фотик Phillips MS34(условная модель)
А у меня Codac Super FLash MA1212
*

Нужно на выходе чтоб было:
Phillips MS34
Codac Super FLash MA1212

Помогите реализовать, заранее спасибо

2

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Так пойдёт?

Src =
(
Я приобрел отличный фотик Phillips MS34(условная модель)
А у меня Codac Super FLash MA1212
)

Dest := RegExReplace(Src, " ?[^A-Za-z\d\r\n]+ ?")

MsgBox, %Dest%

3

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Спасибо YMP, попробую, отпишу

4 (изменено: Alex112, 2010-10-12 12:41:12)

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Я вот помещаю содержимое буфера обмена (Src:=Clipboard)
Но оно слова слитно пишет

PhillipsMS34
CodacSuperFLashMA1212
И еще бы поубирать пустые строки, если возможно)

5

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Да, что-то я не обратил внимания на слитность. В первом варианте было нормально, но потом "улучшил".

Попробуйте так:

Src := Clipboard

Dest := RegExReplace(Src, "[^A-Za-z\d\s]+ ?")
Dest := RegExReplace(Dest, "(\r?\n)+", "$1")

MsgBox, %Dest%

6

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Спасибо YMP!

7

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

YMP:

Src =
(
Я приобрел отличный фотик Phillips MS34(условная модель)


А у меня Codac Super FLash MA1212
)

MsgBox, % RegExReplace(Src, "[^\w\s]+ ?|\R(?=\R)")

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Я тоже сначала использовал \w. Но потом подумал, что это эксплуатация бага и идеологически неправильно. Ну или не бага, но неполноценности какой-то, недоделанности.

9

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Кстати, а если будет так?

Src =
(
Я приобрел отличный фотик Phillips MS34(условная модель)
Врёшь ты всё.
Не, нифига не вру.
А у меня Codac Super FLash MA1212
)

MsgBox, % RegExReplace(Src, "[^\w\s]+ ?|\R(?=\R)")

Нигде ведь не сказано было, что пустые строки там изначально. Я этот момент учёл, а ты нет.

10 (изменено: Alex112, 2010-10-12 19:29:21)

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

OFFTOP/ Битва титанов, неведана для земных)))

11 (изменено: teadrinker, 2010-10-12 19:56:43)

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

YMP:

Src =
(
Я приобрел отличный фотик       Phillips MS34(условная модель)
   Врёшь ты всё.
Не, нифига не вру.
А у меня Codac Super FLash MA1212
)

Dest := RegExReplace(Src, "[^A-Za-z\d\s]+ ?")
Dest := RegExReplace(Dest, "(\r?\n)+", "$1")

MsgBox, %Dest%

Да, у меня не совсем верно!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Издеваешься? Так никто писать не будет. Если в вопросе прямо не указано, извращения не рассматриваются.

13

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Да нет, я чисто ради спортивного интереса! Пробел или таб в начале строки теоретически могут быть!

Src =
(
Я приобрел          отличный фотик Phillips MS34(условная модель)
Врёшь ты всё.
   Не, нифига не вру.
   
А у меня Codac Super FLash MA1212
)

MsgBox, % RegExReplace(Src, "(?<=[\n\r])\W+(?=\R)\R|[^\w\r\n\t ]|(?<!\w)[ \t]")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

teadrinker пишет:

Пробел или таб в начале строки теоретически могут быть!

Теоретически в русских словах могут быть английские буквы, и наоборот.

15

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Да? Никогда с таким не сталкивался!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Ну дык "сталкивался" — это уже практика. Мы же теоретизируем. Но я вот обычно АНК пишу русскими буквами, если это не заголовок темы. Охота ли человеку переключать язык ради аббревиатур типа MA1212?

17

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

Что ж, в таком случае задание будет просто невыполнимо. А вот с пробелами и табами легко можно бороться!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

18

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

OFF:

YMP пишет:

Но я вот обычно АНК пишу русскими буквами, если это не заголовок темы. Охота ли человеку переключать язык ради аббревиатур типа MA1212?

Насчёт таких аббревиатур не скажу, поскольку не знаю что сие. А вообще всегда пишу на том языке, который должен быть. Это чрезвычайно важно для поиска (не только в интернете, но и локально).

P.S. Или я не понял, и Вы имели в виду так: «АХК»?

19

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

alexii, что касается АНК, то обратите внимание на заголовок этой темы, оно там есть. А МА1212 — из вопроса автора темы. Просто пример аббревиатуры, где по виду не поймёшь, латинские буквы или русские. Соответственно есть соблазн не переключать язык, а печатать русскими.

20 (изменено: Uniors, 2012-11-28 14:43:07)

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

А как на основе выше выложенных кодов извлечь слово после каждого пробела?
Пример:
Я
приобрел
отличный
фотик
Phillips
MS34

21

Re: AHK: Нужно из текста извлечь слова, которые содержат латинницу и цифры

YMP пишет:

Я тоже сначала использовал \w. Но потом подумал, что это эксплуатация бага и идеологически неправильно. Ну или не бага, но неполноценности какой-то, недоделанности.

Раз уж эта тема всплыла:

http://www.pcre.org/changelog.txt пишет:

Version 8.10 25-Jun-2010
    Added PCRE_UCP to make \b, \d, \s, \w, and certain POSIX character classes
    use Unicode properties. (*UCP) at the start of a pattern can be used to set
    this option. Modified pcretest to add /W to test this facility. Added
    REG_UCP to make it available via the POSIX interface.

В актуальных версиях ahk есть опция *UCP. Теперь \w для латиницы это не баг, а «фича», дающая прирост скорости выполнения regexp при работе с ASCII символами.

Сообщение написано для пользователей не обращающих внимание на даты написания постов.