У меня был тот же вопрос, но потом у меня был момент «духа». Вместо записи
x ~ y
напишите
y ~ x
Очевидно, что это соответствует «x» вместо «y», но отвечает «есть ли совпадение?». вопрос и простой обход DOM могут привести вас к правильному элементу более эффективно, чем цикл в javascript.
Я понимаю, что исходный вопрос был вопросом CSS, поэтому этот ответ, вероятно, совершенно не имеет значения, но другие пользователи Javascript могут споткнуться на вопрос через поиск, как я.
Если вас интересуют пробелы (включая табуляции и т. Д.), Используйте \ s
if (preg_match("/\\s/", $myString)) {
// there are spaces
}
, если вас просто интересуют пробелы, тогда вам даже не нужен regex:
if (strpos($myString, " ") !== false)
Мы можем также проверить на пробелы с помощью этого выражения:
/\p{Zs}/
function checkSpace($str)
{
if (preg_match('/\p{Zs}/s', $str)) {
return true;
}
return false;
}
var_dump((checkSpace('thisOneWouldTestFalse')));
var_dump(checkSpace('this sentence would be tested true for spaces'));
bool(false)
bool(true)
<час> , Если Вы хотите упростить/обновить/исследовать выражение, оно было объяснено на верхней правой панели regex101.com . Можно наблюдать шаги соответствия или изменить их в эта ссылка отладчика , если Вам было бы интересно. Отладчик демонстрирует что, как механизм RegEx мог бы шаг за шагом использовать некоторые демонстрационные входные строки и выполнит процесс соответствия.
Также см. этот вопрос StackOverflow , который посвящен этому.
И, в зависимости от того, хотите ли вы обнаруживать вкладки и другие типы пробелов, вы можете посмотреть синтаксис регулярных выражений Perl для таких вещей, как \ b \ w и [: SPACE:]