LINUX.ORG.RU

Подскажите по регулярочке

 


0

1

Всем привет. Подскжите пожалуйста по регулярочке.

Требуется «захватить» все слова в строке, которые не соответствуют словам из набора: word1|word2|word3.

Нагуглил такое решение:

^((?!word1|word2|word3).)*$


Но оно не работает для строки вида:
My super string word1, hello word2 word yes word3 the bestr


попробуй

(?!(word1|word2|word3)\b)\b\w+

Deleted
()

В твоем случае возможно лучше использовать string.Replace()

ritsufag ★★★★★
()
$ cat djnoob
#!/bin/bash

read -a words

for i in "${!words[@]}"; do
    if [[ ${words[$i]} =~ word1|word2|word3 ]]; then
        unset "words[$i]"
    fi
done

echo "${words[@]}"

$ ./djnoob <<< 'My super string word1, hello word2 word yes word3 the bestr'
My super string hello word yes the bestr
Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.