2015-01-21 2 views
2

Я пытаюсь построить регулярное выражение, чтобы соответствовать эти строки:Regex для буквенно-цифровых символов плюс скобок и пробелов

  1. jfldfldf ldjfdlf ldfl
  2. ldfldf 8998 dfjldjf 89dfdf dfdf899
  3. ljdljf [DFF] dfdf (fdfdf) 898

Требования:

  1. Строка должна начинается только с любого малого или капитального характера (AZ)
  2. Он может содержать пробелы или скобки (() [ ])
  3. Любые другие специальные символы не допускаются

Я попытался /^[a-zA-Z]+[\sa-zA-Z0-9\[\]\(\)].+/m, но он по-прежнему прием других специальных символов.

+0

Вы пропустили '' $ – zerkms

ответ

7

Так близко.

/^[a-zA-Z]+[\sa-zA-Z0-9\[\]\(\)].+/m 
     ^     ^^-- missing $ 
     ^     ^-- delete this dot 
      ^-- you could also delete this plus, but that's not as important 
+0

спасибо работает :) (Y) – maq

1

Самое большое, что не удается в этом регулярном выражении, это сингл '.'. Это служит подстановочным знаком, соответствующим любому значению, кроме новой строки. Символы плюс не нужны, и конец символа строки '$' отсутствует.

/^[a-zA-Z][\sa-zA-Z0-9\[\]\(\)]$/m 
+0

спасибо ИТС также рабочий :) (Y), и я принимаю @Niet the Dark ans, потому что он ответил первым;) – maq

2
/^[a-zA-Z]{1}[a-zA-Z0-9\ \[\]\(\)]+$/m 

\ s = позволяет пробельные как пространства вкладок и новых линий, так что это, вероятно, следует «\»

Поскольку правило это только первая буква должна быть прописной или строчной буквы , строго это {1} как + означает один или несколько.

Нужна была $ в конце, чтобы показать это конец строки, и ничто другое не может следовать ему

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