Как найти слово по количеству символов

Задание: найти в тексте первые 5 слов, состоящих из пяти букв.

Какую формулу ввести в форму поиска?

Например если текст содержит только кириллицу, то под словом понимаем последовательность из набора символов в диапазоне от а до я количество символов равно 5 начиная с начала слова и заканчивая концом слова

на языке подстановочных знаков

начало слова обозначается символом <

конец слова обозначается символом >

набор символов обозначается скобками []

диапазон обозначается символом —

количество символов обозначается скобками {n;m}, где n мин. ,а m -макс. количество

если строка должна содержать только 5 символов то можно записать {5}

формула поиска будет такая <[а-я]{5}>

для текста на латинице <[a-z]{5}>

слово из пяти букв

Обязательно надо поставить галочку Подстановочные знаки, а то ничего не выйдет.

автор вопроса выбрал этот ответ лучшим

MaxFe­r
[77.7K]

6 лет назад 

С подстановочными знаками можно поэкспериментировать. Все они перечислены на странице поддержки MS Office в разделе о работе с Word.

Если ввести в форму поиска пять вопросительных знаков «?????», то система выдаст очень плачевную картину, потому что во-первых, без указания границ слова результат выделит слова с этими пятью знаками в середине слова и во-вторых, среди вопросительных знаков могут быть пробелы. Даже если по краям установить угловые скобки «<?????>», то избежать попадания пробела в середину слова не удастся. Так что поиск с вопросительными знаками отметаем.

Тогда нужно брать подстановочные знаки.

Границы слова отметить нужно обязательно — «<» и «>». Далее можно попробовать ввести любой символ в диапазоне от «а» до «я» пять раз. Получим вот такую формулу: «<[а-я][а-я][а-я][а-я][а-я]>».

Есть и более экономичный вариант, если указать количество символов (кроме пробелов) после заданного знака с помощью фигурных скобок. А этот заданный знак в диапазоне от «а» до «я». (Если указать просто знак, то количество этих повторяющихся знаков будет 5 и нет гарантий, что в тексте есть слово с одинаковыми пятью буквами). И не забудем про границы слова

Итак, формула — «<[а-я]{5}>». Количество букв в слове будет равно 5, а буква может быть любой в диапазоне от «а» до «я».

владс­андро­вич
[766K]

4 года назад 

В том случае, если нужно любое слово с любым количеством букв, и последних и последних в их количестве должно быть лишь пять, то проделывается такое задание следующим способом:

Выберите в меню — Главная, после чего переходите на графу — Найти или производите поиск, за счет комбинации клавишь Ctrl + H;

Нажимаете кнопку — Больше. После чего вам необходимо убедиться в том что значка возле пункта — Подстановочные знаки больше нет. Вариант который вы должны будете выбрать это — Везде, что бы поиск был тотальным и затрагивал весь документ.

Введите в строку предназначенную для поиска такой набор символов как — ^$. При этом так как нам необходимо произвести нахождение слова в пять знаков, то и вводить его нужно в количестве пяти раз, причем в чистом виде.

Дальше вы активизируете функцию — Найти. При этом такая процедура требует повторения до тех пор, пока вы не найдете все слова.

Если задание найти любое слово из любых букв, при этом последних должно быть только пять, то сделать это просто:

  • Выбираем меню «Главная» — «Найти» или же вызываем его комбинацией Ctrl + H;
  • Нажимаем на кнопку «Больше» и убеждаемся, что значок около пункт «Подстановочные знаки» снят. Направление стоит выбрать «Везде», дабы поиск был по всем документу, а не с момента, где остановился пользователь;
  • Вводим в строку поиска символы ^$. Поскольку у нас требуется найти слово в пять знаков, то и вводим его пять раз. Без каких-либо скобочек;
  • Нажимаем на кнопку «Найти». И так повторяем процедуру до тех пор, пока все искомые слова не будут найдены.

Знаете ответ?

Добрый день!
Есть несколько папок, в которых хранятся txt-файлы, в которых указаны списки доменов. Я написал bat-файл, который перебирает все файлы из определенной папки (dest=G:DomainsBATFiles2008) и ищет в них ключевые слова из txt-файла (G:DomainsBATtags.txt). Найденные домены записываются в новый txt файл, который сохраняется в папке «G:DomainsBATResults2008»

echo on
setlocal EnableDelayedExpansion
>nul chcp 1251

set "dest=G:DomainsBATResults2008"
set "dir=G:DomainsBATFiles2008"

>nul chcp 866

(FOR /F "tokens=*" %%z in ('dir %dir% /b /a-d') do (

FOR /F "usebackq" %%i IN ("G:DomainsBATtags.txt") do ( 
set word=%%i
FOR /F "tokens=*" %%a in ('FINDSTR /R /I /C:%%i %dir%%%z') do (

 echo %%a >> %dest%%%i.txt"
)
)
))
)

endlocal
Pause

Подскажите пожалуйста, как мне добавить в мой скрипт условие на кол-во символов в домене?
Например, я указываю в файл tags.txt тег «test», а в bat-файле кол-во символов «6». Отбираются только те домены, которые содержат в имени слово test и имеют 6 символов в имени, не считая доменной зоны. Такие домены как test11.com, 2test2.net, testxx.org, xtestx.ru и т.п.

Заранее благодарю!

0 / 0 / 0

Регистрация: 09.06.2015

Сообщений: 6

09.06.2015, 19:16

 [ТС]

5

Вот примеры:
1.Напівпричіп — самоскид,марки «CMT W 25 50″б/в,календарний рік виготовлення-2004, номер кузова SW922560A41CH3343.
1. Причіп ізотермічний з встановленим холодильним обладнанням, двохвісний, марки «BURG», модель «BPM 00-18 TCSXX», ідентифікаційний номер (номер шасі) — XL22M001850392120, вантожопідйомність — 10,380 т, маса в разі максимального завантаження — 18,0
1. Сідельний тягач б/в, призначений для перевезення напівпричепів по дорогах загального користування, марка згідно з довідником — «DAF», модель згідно з довідником — «105.460», шасі № XL2TE474S0E877988, календарний рік виготовлення-2008,
1.Легковий автомобіль TOYOTA COROLLA, 2006 року випуску, бувший у використанні, № кузова SB1KC67E20F099087, тип двигуна-дизельний (1364см3).



0



Как найти слово, в котором число различных символов минимально? Если таких слов несколько, найти первое из них.

Как это можно сделать?

aleksandr barakin's user avatar

задан 8 янв 2016 в 21:07

Neon's user avatar

2

Я так понял, что вам нужно в заданной строке найти слово, в котором число УНИКАЛЬНЫХ символов минимально (сколько раз они повторяются неважно)? Тогда что-то типа такого (если разделитель слов — пробелы):

def f(string):
    for i in string.split(' '):
        if (len(set(string)) > len(set(i))):
            string = i
    return string

UPD

Добавил вариант на случай ввода строки в форме NFD (спасибо @jfs):

import regex
def f1(string):

    def uniq(s):
        return regex.findall(r'X', s, regex.U)

    for i in string.split(' '):
        if (len(uniq(string)) > len(uniq(i))):
            string = i
    return string

ответ дан 8 янв 2016 в 21:55

Flowneee's user avatar

FlowneeeFlowneee

3,7991 золотой знак20 серебряных знаков31 бронзовый знак

5

Если символ это Unicode codepoint, то чтобы найти слово с минимальным кол-вом символов из списка words:

word = min(words, key=lambda w: len(set(w)))

Если символ это символ, видимый пользователю (grapheme cluster):

import regex as re # pip install regex
word = min(words, key=lambda w: len(set(re.findall(r'X', w))))

Если слова в тексте разделены символами пробелов (включая новый строки и Юникодные символы), то words = text.split().

ответ дан 12 янв 2016 в 8:40

jfs's user avatar

jfsjfs

51.8k11 золотых знаков107 серебряных знаков306 бронзовых знаков

Я ищу, чтобы найти слова из 14 или более символов в Notepad++. Есть идеи?

К сожалению, notepad++ не поддерживает множители регулярных выражений, поэтому вы должны выполнить поиск регулярных выражений (Search -> Find -> Search Mode = ‘Regular Expression’) для:

wwwwwwwwwwwwww+

Каждое ‘w’ — это символ слова (не пробелы или знаки пунктуации и т.д.), А последний ‘w+’ означает, что он должен найти один или несколько из них, поэтому выражение означает 14 или более символов слова.

Если вы используете Notepad++ 6, вы можете воспользоваться новым движком регулярных выражений, который поддерживает PCRE (источник).

Нажмите Ctrl + F и выполните следующий поиск:

Find:        [A-Za-z]{14,}
Search mode: Regular Expression

[A-Za-z] означает каждую заглавную или строчную букву. {14,} означает 14 или более раз.

Обратите внимание, что [A-Za-z] не будет надежно работать с текстами на некоторых языках. Чтобы включить все буквенные символы из кодировки символов Windows-1252, используйте вместо этого [A-Za-zƒŠŒŽšœžŸªµºÀ-ÖØ-öø-ÿ] .

Для получения более подробной информации о регулярных выражениях, обратитесь regular-expressions.info.

привет, это мой первый ответ здесь:D если вы считаете, что ваше слово состоит из чего-либо, кроме пробела или новой строки, запятой, точки или кавычки, используйте это регулярное выражение

Нажмите Ctrl + F и выполните следующий поиск:

Найти: [^ [: blank:] ^n., ‘] {14,} Режим поиска: регулярное выражение

надеюсь, что это работает для вас.

Понравилась статья? Поделить с друзьями:
  • Как найти значок сканирование
  • Как найти девушку если ты низкий
  • Как исправить welcome to nginx
  • Как найти arg комплексные числа
  • Как найти повторяющиеся элементы в массиве питон