2016-01-24 2 views
1

регулярное выражение Я попытался это: \^[^\s][a-z\sA-Z\s0-9\s-()][^\s$]\регулярное выражение для не Пробелы в начале и в конце, но позволяют в середине

+0

Как угловое релевантно? Какое регулярное выражение? Для JavaScript, как определено в ECMA-262? Вы используете литерал регулярного выражения в вашем js-коде? Почему бы вам просто не описать язык словами. что-то вроде этого: «набор слов, которые не начинаются или не заканчиваются пробелом». Но как насчет пустого слова? –

+0

ум разработать? – manetsus

+1

регулярное выражение будет трудно читать и понимать. Это выражение было бы намного проще: 'str.trim() === str' –

ответ

3

Это должно работать:

^[^\s]+(\s+[^\s]+)*$ 

Если вы хотите включить символ ограничения:

^[-a-zA-Z0-9-()]+(\s+[-a-zA-Z0-9-()]+)*$ 

Объяснение:

стартовый ^ и заканчивается $ обозначает строку.

с учетом первого регулярного выражения, которое я дал, [^\s] означает not whitespace. Итак, если вы посмотрите, я положил not whitespace в начале, allow whitespace посередине и еще один not whitespace в конце.

Если вы хотите ограничить, какие символы принимать в начале и конце, см. Второе регулярное выражение. Я разрешил a-z, A-Z, 0-9 и() в начале и в конце. Только они разрешены.

Regex площадка: http://www.regexr.com/

+0

Обратите внимание, что это отклонит пустое слово. Не ясно, правильно ли это. –

+0

Я не хочу разрешать пробелы в конце и в начале .... bt в средних пробелах должно быть разрешено – pratik

+0

также объяснить регулярное выражение каждого символа, как im, нова к этому – pratik

1

Как насчет:

^\S.+\S$ 

Это будет соответствовать любой строке, которая не начинается или заканчивается с любым видом пространства.

+0

'.' Будет соответствовать '\ n' или нет на основе многострочного флага, и строка должна иметь длину не менее 3 символов ... – Aprillion

1

Этот RegEx не позволит ни пробелу в начале, ни в конце строки/слова.

^[^\s].+[^\s]$ 

Любая строка, которая не начинается или не заканчивается пробелом, будет согласована.

Пояснение:

  1. ^ обозначает начало строки.
  2. \s обозначает пробелы, и поэтому [^\s] обозначает НЕ белое пространство. Вы также можете использовать \S, чтобы обозначить то же самое.
  3. . обозначает любой символ ожидание линия разрыв.
  4. + - это квантификатор, который обозначает - один или несколько раз. Это означает, что символ, который следует указывать +, может повторяться в течение или более раз.

Вы можете использовать this как лист обложек RegEx.

0
^[^\s].+[^\s]$ 

Это все !!!!он позволяет любую строку, содержащую любой символ (часть из \ n) без пробелов в начале или в конце; в случае, если вы хотите \ n посередине, вы можете заменить .+ на [.\n]+

1

Если длина строки должна быть длиной не менее 1 символа, если новые линии разрешены посередине вместе с любыми другими символами и первый + последний символ может быть действительно anyhing за исключением пробелов (включая @ # $ ...!), то вы ищете:

^\S$|^\S[\s\S]*\S$ 

объяснения и модульные тесты: https://regex101.com/r/uT8zU0

0

узор = "^ [^\ s] + [- a-zA-Z \ s] + ([- a-zA-Z] +) * $ " Это поможет вам принять только charac и не разрешают пробелы в начале или пробелы.

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