2011-12-30 3 views
0

Я пытаюсь проверить линию для нескольких условий, как то естьПроверка чтения строк с некоторыми регулярными выражениями

  1. ли строка пустой
  2. ли строка содержит начало многострочного комментария
  3. ли строка содержит начало многострочный комментарий + что-нибудь еще, кроме пространств
  4. строка содержит ли конец многострочного комментария строка содержит
  5. ли конец многострочного комментария + что-нибудь еще, кроме пространств
  6. ли строка начинается с одной строки комментария

Что касается регулярных выражений, я пришел с некоторыми:

  1. "^\\s*$"
  2. "/\\*+"
  3. "[^\\s]/\\*+"
  4. "\\*/+"
  5. "[^\\s]\\*/+"
  6. "^//"

Но я не уверен, что они делают то, что я думаю, что они делают. Может кто-то быстро взглянуть и сказать мне, хорошо ли они, и если способ, которым я пытаюсь сделать проверку, правильный?
Спасибо.

ответ

0

2: будет соответствовать одной или нескольким звездам в любой точке линии. Я бы написал его "^\\s*\\*".

3: "^\\s*\\*\S+$"

4: нет необходимости в +

5: он не допускает только один символ перед многострочного конца, и + не требуется (как в 4.). Я бы написал его "^\\S+\\*/\\s*$" (для учета пробелов после финала /).

6: это нормально, если вы явно запретили пробелы перед ним, иначе напишите "^\\s*//".

У вас есть другие проблемы, хотя! Написание регулярных выражений для многострочных комментариев сложно, это можно сделать, но это сложно, тем не менее.

+0

спасибо, несколько вопросов. Что касается 1, я бы читал твои, как начинается с пробела, за которым следуют ноль или больше пробелов и звезда (потому что ты ускользнул от него, чтобы он не означал больше нуля или больше, но буквально был звездой). Что касается 2 - почему он должен начинаться с пробела? и с непространственным характером? – smallB

+0

К сожалению, я переместился:/1 должен быть 2 и 2 должен быть 3. Исправление ... – fge

+0

Итак, я понимаю, что моя 1 делает то, что предназначено? – smallB

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