|
|
|
Регулярное выражение на скобки
|
|||
|---|---|---|---|
|
#18+
есть довольно непростое задание - определить правильно ли в предложении расставлены скобки ( и ) Но не просто подсчитать их количество, а чтобы на каждую закрывающую была открывающая например: раз два три четыре (пять ш(ест)ь семь восемь девять десять - неверно раз два три четыре (пять ш(е(с)т)ь сем)ь восемь девять десять - верно Можно ли такое дело разрешить регуляркой, чтобы не плодить лишние строки кода? опыта на такое ещё не хватает поэтому и спрашиваю здесь. // и по какому принципу компилятор проверяет синтаксис в плане скобок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2012, 00:22:52 |
|
||
|
Регулярное выражение на скобки
|
|||
|---|---|---|---|
|
#18+
Регулярки в данном случае не очень хороший выбор. Быстрее запутаешься, чем решишь задачу. Вариант 1: ( abc ( abc ( abc ) abc ) abc ) Вариант 2: ( abc ( abc ) abc ( abc ) abc ) Вариант 3: ( abc ) abc ( abc ) abc ( abc ) Вариант 4: ( abc ) abc ) abc ( abc ( abc ) Т.е. алгоритм следующий: - встретили открывающую скобку: +1 к счетчику; - встретили закрывающую: -1 и если вышло <0 - ошибка; - по окончанию должны получить в счетчике 0 иначе - ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2012, 00:30:26 |
|
||
|
Регулярное выражение на скобки
|
|||
|---|---|---|---|
|
#18+
скобок может быть бесконечное количество, поэтому если никто не поможет буду рекурсивной функцией проверять наличие. вот только не очень понятно как сделать углубление в скобки до Nнного уровня к примеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2012, 00:39:39 |
|
||
|
Регулярное выражение на скобки
|
|||
|---|---|---|---|
|
#18+
Нафига тебе рекурсия, если речь стоит лишь об определении их правильности, а не о разборе выражения? Выше ж написал как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2012, 00:45:42 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=297&tid=2132072]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 361ms |
| total: | 457ms |

| 0 / 0 |
