2013-10-04 2 views
0

Может кто-нибудь, пожалуйста, помогите мне выяснить, почему следующее регулярное выражение не может совпадать? Мне нужно, чтобы проверить, что строка начинается с "прямоугольником (" или "прямоугольником (" и заканчивается ")"Regext match конец строки

rect (a,a,a,a) 

Regex

(^rect+\s*\()+\)$ 

ответ

2

Попробуйте уйти от ( и ):

^rect\s*\(.*\)$ 

Это необходимо, потому что скобки обычно имеют особое значение в регулярных выражениях, поэтому, если вы хотите совместить литерал ( или ) следует избегать.

Это будет соответствовать:

  • начала строки
  • Буквальное rect
  • ноль или более пробельных символов
  • буквальным (
  • ноль или более любых символов
  • a) )
  • конец строки
2

Используйте следующий: ^rect\s*\(.*\)$

1

Это регулярное выражение должно работать для вас:

^rect\s*\(.*?\)$ 
Смежные вопросы