Перепутанный границей слова

Ссылка Вы посылаете соглашения с 32-разрядными библиотеками поддерживать видео в Skype. Это не Ваша проблема, еще.

Согласно этому обсуждению кажется, что Ваша веб-камера поддерживается драйвером GSPCA. Тем не менее, необходимо предоставить еще некоторую информацию, связанную с проблемой:
uname -a # Я даже не знаю, является ли Ваша система 64-разрядной или 32-разрядной.
lsusb # Я предполагаю, что Ваша камера является usb из изображения. lsmod|grep gspca # Удостоверяться, загружается ли драйвер GSPCA.

Вы могли бы также взглянуть на королевского адвоката Mandriva руководство. Даже Вы другой дистрибутив и другая веб-камера, это предоставляет немного полезной информации.

13
07.04.2013, 21:32
2 ответа

Как описано здесь, например, это соответствует между словами:

Существует три различных положения, которые квалифицируют как границы слова:

  1. Перед первым символом в строке, если первый символ является словесным символом.
  2. После последнего знака в строке, если последний знак является словесным символом.
  3. Между двумя символами в строке, где каждый - словесный символ и другой, не словесный символ.

Вот примеры каждого из тех случаев:

  1. Для строки foobar, первые соответствия случая

     foobar
    ^-----here
    
  2. Для строки foobar, вторые соответствия случая

    foobar
          ^--here
    
  3. Для строки foo bar, третий случай будет соответствовать

    foo bar
       ^--here, because space is not a word character
    

Что квалифицирует, поскольку словесный символ зависит от определенной реализации регулярного выражения. Во всех случаях однако, буквы ([a-z] и [A-Z]), числа ([0-9]) и _ считаются словесными символами.


Так, пример regex Вы отправил (\b[A-Z]+\b) средства находят самую длинную строку, которая является между двумя границами слова, и это состоит из прописных букв только. Могло бы быть легче объяснить примером:

echo "FOOBAR" | egrep '\b[A-Z]+\b'   # Works
echo "FOO BAR" | egrep '\b[A-Z]+\b'  # Works
echo "aFOOBARb" | egrep '\b[A-Z]+\b' # Does not work, we want capitals only
echo "12345" | egrep '\b[A-Za]+\b'   # Does not work, no letters
echo "1FOOBAR2" | egrep '\b[A-Z]+\b' # Does not work, 1 and 2 are word chars
echo "_FOOBAR_" | egrep '\b[A-Z]+\b' # Does not work, _ is a word char
echo "#FOOBAR$" | egrep '\b[A-Z]+\b' # Works, # and $ are not word chars
12
27.01.2020, 19:53
  • 1
    Превосходное объяснение, просто обратите внимание что Solaris egrep (ни /usr/xpg4/bin/egrep) не рассматривает \b сюда. Например, echo "FOOBAR" | egrep '\b[A-Z]+\b' не соответствовал бы. –  Peter 14.12.2017, 04:11
egrep '\b[A-Z]+\b' filename.sh

Давай расстанемся:

  1. [A-Z]представляет любой символ в классе символов [ABCDEFGHIJKLMNOPQRSTUVWXYZ].
  2. [A-Z]+представляет одно или несколько вхождений символов верхнего регистра. Примеры совпадений: :A, HELLO, IS, I, ELEPHANTи т. д.
  3. '\bINDIA\b':точно так же, как поиск ПО ВСЕМ СЛОВУ для слова INDIAв верхнем регистре. Это будет НЕ соответствовать INDIANA. Таким образом, применение того же принципа-'\b[A-Z]+\b'выглядело бы для целых слов, содержащих одну или несколько букв в верхнем регистре.
  4. Таким образом, egrep '\b[A-Z]+\b' filename.shбудет искать слова, содержащие одну или несколько букв в верхнем регистре в файле-filename.sh.

\b-точно так же, как поиск по целому слову.

0
27.01.2020, 19:53

Теги

Похожие вопросы