Регулярка, взять первые 5 символов/букв/чисел

ErikMoor

Client
Регистрация
24.03.2016
Сообщения
123
Благодарностей
22
Баллы
18
Приветствую
Помогите с регуляркой
Нужно взять первые 5 символов/букв/чисел с переменной

^\w{5}

Не берет вот эти слова:

SP!pienieznego30
-Fhtr1.c.s
Ala#60391
n@w@123!A
#11Barcelonka
@Jordan23@
ash-tray
!Marian1
S@turn@1289
000.999Vci
#5RMKskJknsu3GU
P@$$w0rd
kid**sahmo00
нужно что бы все брала, включая регистр

За ранее спасибо!
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 518
Благодарностей
1 316
Баллы
113
  • Спасибо
Реакции: Greez, Sho и ErikMoor

ErikMoor

Client
Регистрация
24.03.2016
Сообщения
123
Благодарностей
22
Баллы
18

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 510
Благодарностей
3 365
Баллы
113
  • Спасибо
Реакции: Ilshakin

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
546
Благодарностей
1 125
Баллы
93
То что нужно, большое спасибо
Так же имейте ввиду, что могут потребоваться модификаторы, например, если вы работаете с многострочным текстом.
Тоже хотел написать)

С вашего позволения дополню:
(?m)^.{5}

i
Самый важный модификатор, указав который регистр (строчная или прописная буква) при поиске соответствий учитываться не будет.
U
Если указать данный модификатор, то будет вестись поиск минимального по длине соответствия. По умолчанию ищется максимальное по длине соответствие.
m
Данный модификатор будет искать соответствие только в одной строке, а не по всему тексту.
s
Противоположность модификатору m, то есть, указав данный модификатор, соответствие будет искаться по всему тексту.
x
При использовании данного модификатора пробельные символы будут игнорироваться. То есть Вы можете написать хоть 100 пробелов, и они будут опущены. Если, конечно, Вы их не экранируете (с помощью "\").
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Приветствую
Помогите с регуляркой
Нужно взять первые 5 символов/букв/чисел с переменной

^\w{5}

Не берет вот эти слова:



нужно что бы все брала, включая регистр

За ранее спасибо!
Здесь может быть несколько вариантов - взять с переменной только первые 5 символов, а может быть задача взять 5 символов с каждой строки.
Я бы это решал через C#.
Добавлю пример решения этих двух вариантов.

C#:
string text = project.Variables["text"].Value; // Переменная содержащая текст
int count = 5; // Сколько символов берем
project.Variables["one_line"].Value = text.Length < count ?  text : text.Remove(count); // Случай когда необходимо с переменной взять первых 5 символов (указанное количество)

// Вариант когда нужно взять указанное количество символов с каждой строки и вернуть все строки
string[] temp = text.Split(new[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries)
                    .Select(line => line.Length < count ? line : line.Remove(count)).Where(x=>!string.IsNullOrEmpty(x)).ToArray();
                                        
project.Variables["all_line"].Value = temp.Length > 0 ? string.Join(Environment.NewLine, temp) : string.Empty; // Если ничего нет - пусто
98244
 
  • Спасибо
Реакции: Garantez и Ilshakin

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)