Quantcast
Channel: Ru.Board
Viewing all articles
Browse latest Browse all 1030851

Регулярные выражения (264) /

$
0
0
ne_viens:

Код:
((\l) (\!|,|\)|\.|\:|\?|\;))

Лишние скобки нам не надо:

Код:
(\l) (\!|,|\)|\.|\:|\?|\;)

, потом труднее их считать будет.


Код:
\.(\u)|,(\l)|&(.)
(?1. $1:)(?2, $2:)(?3& $3:)

Тут что-то нагорожено, надо: (?1$1$2:)


Код:
\?(\u)
(?1? $1:)
\!(\u)
(?1! $1:)

Эти можно добавить к .,&

Код:
\.(\u)|,(\l)|&(\S)|\!(\u)|\?(\u)
(?1. $1:)(?2, $2:)(?3& $3:)(?4! $4:)(?5? $5:)



Код:
\((\l)
(?1 \($1:)

Тут написано искать скобку "\(" с последующей малой буквой "(\l)" и букву запомнить.
Eсли последовательность найдена "?1", заменить на пробел, скобку и сохранённую букву " \($1:"
A надо искать малую букву и скобку и букву запомнить "(\l)\(" ,
потом заменить на сохранённую малую букву, пробел и скобку "(?1$1 \(:)"

Осталoсь только объединить регексы через оператор ИЛИ "|"
и в строке условной замены разобраться с нумерацией переменных в соответствии с скобками из регекса.

Код:
(\l) (\!|,|\)|\.|\:|\?|\;)|\.(\u)|,(\l)|&(\S)|\!(\u)|\?(\u)|(\l)\(
(?1$1$2:)(?3. $3:)(?4, $4:)(?5& $5:)(?6! $6:)(?7? $7:)(?8$8 \(:)

И, если хочется совсем правильно, то строку замены пишем по логике "if, else if, else if, ..." , а не по "if, if, if, ..."

Код:
(?1$1$2:(?3. $3:(?4, $4:(?5& $5:(?6! $6:(?7? $7:(?8$8 \(:)))))))

, правда от этого сильно пострадает читаемость.


Viewing all articles
Browse latest Browse all 1030851

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>