#php #regex
#php #регулярное выражение
Вопрос:
Регулярное выражение [w|W]*s[w|W]*
и строка aaab@ asd123
, потому что я думаю [w|W]*
, равно w*|W*
, что означает символ, кратный слову, или символ, не содержащий слов… как он может иметь как слово, так и несловесный символ вместе, например aab@
?
Комментарии:
1. Как получается, что что-то правильно и неправильно одновременно? Не понимаю вас…
2. Когда вы уверены, что это неправильно , свяжитесь с нами
3. Ваше регулярное выражение соответствует всему, что есть, затем 0 пробелов, а затем снова любым 0 символам. Посмотрите вашу демонстрацию регулярных выражений. Прямо сейчас просто непонятно, что вы хотите сделать. Обратите
[w|W]*
внимание!=w*|W*
. Может быть, вам нужно(S )s(S )
.
Ответ №1:
ПРИМЕЧАНИЕ: Ваша строка, по-видимому, разделена пробелом, поэтому вы можете просто использовать explode(" ", $s)
. Приведенный ниже ответ состоит в том, чтобы просто объяснить, как работает регулярное выражение.
Я полагаю, что вы неправильно [w|W]*
поняли и w*|W*
: первый соответствует любым символам 0 , а второй соответствует либо символам 0 , либо символам 0 , не состоящим из слов.
Вы, кажется, хотите сопоставить 0 символов, не содержащих пробелов, используйте S
:
S s S
Или, чтобы захватить две части, не содержащие пробелов:
(S )s (S )
Шаблон
будет соответствовать одному или нескольким вхождениям шаблона без пробелов с натяжкой.
Смотрите Демонстрацию регулярных выражений