LINUX.ORG.RU

Нужна помощь с регулярным выражением

 ,


0

1

Ребята помогите, пожалуйста, набросать регулярное выражение такого плана: допустим есть строка вида 'ang' нужно чтобы нашло из списка слов что есть для проверки в совпадение попали слова ang, Angular, anGular, ну и так далее - тут вопрос в регистро зависимости строки, строка 'ang' может быть произвольной.



Последнее исправление: Berdin (всего исправлений: 1)
Ответ на: комментарий от anonymous

Грубо говоря есть набор строк и изменяемая строка, вот нужно сравнивать все строки с изменяемой, если есть совпадение в независимости от регистра - то вызывать необходимую функцию и т.д. У меня сложность с тем как правильно изменяемую строку запихнуть в регулярку и проверить на совпадение.

Berdin
() автор топика

ты бы книжку открыл, почитал, дело 20-30 минут.

vim
()
s="foo ang, bar Angular, baz anGular"
re=/ang(\w+)?/gi
print(s.match(re))

//  [ 'ang', 'Angular', 'anGular' ]
regexp_regexp
()
Ответ на: комментарий от Dron

не, твое решение не взлетает, ТС'у нужно

в совпадение попали слова ang, Angular, anGular, ну и так далее

а не только ang/i

regexp_regexp
()

Меня забанили опять:) я regexp_regexp. Забыл сказать, если нужно отфильтровать слова типа fooangbar, то можно, например так


s="foo ang, bar fooangularbar Angular, baz anGular"
re=/\sang(\w+)?/gi
print(s.match(re).map(function(el){return el.trim()}))

//  [ 'ang', 'Angular', 'anGular' ]

anonymous
()
Ответ на: комментарий от anonymous

точней так так


s="ang foo ang1, bar fooangularbar Angular, baz anGular"
re=/(^|\s)ang(\w+)?/gi
print(s.match(re).map(function(el){return el.trim()}))

//  [ 'ang', 'ang1', 'Angular', 'anGular' ]
а иначе слова в начале строки будут выпадать

//fixed by regexp_regexp

anonymous
()
Ответ на: комментарий от anonymous

Последний штрих. Если хочешь фильтровать слова, не подпадающие под маску angular, или хэ как сказать, нутыпонел, то:


s="ang foo angu ang1, bar fooangularbar angular angular22 Angular1, baz anGular"
re=/(^|\s)ang(\w+)?/gi
print(s.match(re)
.map(function(el){return el.trim()})
.filter(function(el){return /ang([ular]+)?$/i.test(el)}))
//  [ 'ang', 'angu', 'angular', 'anGular' ]

//fixed by regexp_regexp

anonymous
()
Ответ на: комментарий от anonymous

улучшеный вариант (предыдыущее пропускало слова типа angluar)


s="ang foo angluar  angu ang1, bar fooangularbar angular angular22 Angular1, baz anGular"
re=/(^|\s)ang(\w+)?/gi
print(s.match(re)
.map(function(el){return el.trim()})
.filter(function(el){return /angu?l?a?r?$/i.test(el)}))

anonymous
()
Ответ на: комментарий от anonymous

output

//  [ 'ang', 'angu', 'angular', 'anGular' ]
//fixed by regexp_regexp

anonymous
()
Ответ на: комментарий от aedeph_

Абсолютно очевидно, что ТС обладает таким уровнем, что знание флага i мало что изменит в его способности написать нужную регулярку. Однако же ты вылез и доказал всем что ты знаешь, что есть такой флаг (это вроде того, что ты типа, знаешь регэкспы, да), после чего тихо с*бался. Из этого делается вывод, что ты написал это именно для того, чтобы показать лору что ты знаешь флаг i, никаких других намерений у тебя не было. Это win.

anonymous
()
Ответ на: комментарий от anonymous

Я доказал, что могу пользоваться гуглом, не больше. Ты же показал, что твоего уровня достаточно, чтобы за четыре часа решить задачу, возможно как-то связанную с задачой ТСа.

Не забудь принять галоперидола, anonimous, а то опять забанят. Whayt, OH SHI...!

aedeph_ ★★
()
Ответ на: комментарий от aedeph_

А я решал ее для себя, ты ж знаешь, что я практикуюсь щас по теме. Мне похрену на тса и его задачу. Чел джаваскрипт не знает на начальном даже уровне, а пилит проект на жирном фреймверке, примета времени, епт:) стопудово ты такой же спец как и он, только базвордов чуть больше в лексиконе.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.