Когда string.length () равен 0, выдается исключение

Чтобы соответствовать любому целому слову, вы должны использовать шаблон (\w+)

Предполагая, что вы используете PCRE или что-то подобное:

enter image description here [/g9]

Над скриншотом, взятым из этого живого примера: http://regex101.com/r/cU5lC2

Соответствие любому целому слову в командной строке с помощью (\w+)

Я буду использовать интерактивную оболочку phpsh на Ubuntu 12.10 , чтобы продемонстрировать механизм регулярного выражения PCRE с помощью метода, известного как ] preg_match

Запустить phpsh, поместить некоторый контент в переменную, совпадение по слову.

el@apollo:~/foo$ phpsh

php> $content1 = 'badger'
php> $content2 = '1234'
php> $content3 = '$%^&'

php> echo preg_match('(\w+)', $content1);
1

php> echo preg_match('(\w+)', $content2);
1

php> echo preg_match('(\w+)', $content3);
0

Метод preg_match использовал механизм PCRE на языке PHP для анализа переменные: $content1, $content2 и $content3 с рисунком (\w)+.

$ content1 и $ content2 содержат хотя бы одно слово, а $ content3 - нет.

Сопоставьте ряд буквальных слов в командной строке с (dart|fart)

el@apollo:~/foo$ phpsh

php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';

php> echo preg_match('(dart|fart)', $gun1);
1

php> echo preg_match('(dart|fart)', $gun2);
1

php> echo preg_match('(dart|fart)', $gun3);
1

php> echo preg_match('(dart|fart)', $gun4);
0

переменные gun1 и gun2 содержат струнные дротики или пердеть. gun4 нет. Однако может возникнуть проблема, когда поиск слова fart соответствует farty. Чтобы исправить это, применяйте границы слова в регулярном выражении.

Сопоставьте литеральные слова в командной строке со слоями.

el@apollo:~/foo$ phpsh

php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';

php> echo preg_match('(\bdart\b|\bfart\b)', $gun1);
1

php> echo preg_match('(\bdart\b|\bfart\b)', $gun2);
1

php> echo preg_match('(\bdart\b|\bfart\b)', $gun3);
0

php> echo preg_match('(\bdart\b|\bfart\b)', $gun4);
0

Итак, это то же самое, что и в предыдущем примере, за исключением того, что слово fart с границей слова \b в содержании не существует: farty.

-10
задан Damián Rafael Lattenero 23 July 2019 в 21:39
поделиться