2013-12-03 2 views
0

Как я могу сопоставить текст, состоящий из 10 символов и минимум 4000, и этот текст может быть любым символом. Кроме того, мне нужно принять возврат каретки пробела и новые строки.Регулярное выражение PHP соответствует любому символу с возвратом кавычки пробела и новыми строками

Я пробовал:

"/.{10,4000}$/" 

Но это не сработало! Я думаю, что точка не включает возврат каретки, например.

Так может кто-нибудь мне помочь?

Извините, что оформите заявку, я португальский.

+3

Вы избежать 'strlen' по определенной причине? – kero

+0

nop, это на самом деле хороший вопрос! Я думал, что регулярное выражение будет более твердым. –

ответ

3

s. соответствует новостным линиям.

"/^.{10,4000}$/s" 
+0

Вы также хотели бы поместить начало строкового якоря '^', иначе вы просто сопоставляете последние 4k символов, а строка может быть длиннее. –

+0

Да, думал, что там уже есть :) – AbraCadaver

+1

Я буду рассматривать этот ответ, потому что это более конкретный вопрос, ответ althoug jszobody более эффективен –

6

Обратите внимание, что точка будет соответствовать любой характер. Так почему бы не просто сделать это:

if(strlen($text) >= 10 && strlen($text) <= 4000) { 
    echo "match!"; 
} 
+4

+1 для не использовать регулярное выражение, где не нужно –

+0

+1 ditto on что. – AbraCadaver

+0

Я принял этот ответ от AbraCadaver, потому что это более конкретный вопрос, хотя ваш ответ более эффективен. –

1

попробовать этот шаблон /^.{10,4000}$/s обратите внимание на «s» модификатор и якоря «^»

+0

@ Джон Дойл, спасибо за ваш комментарий, я считаю, что мой ответ соответствует принятому ответу OP. принятый ответ только что был опубликован, когда я редактировал мой. –

Смежные вопросы