ÐÐ´ÐµÑ ÑÑого поÑÑа не наÑÑиÑÑ Ð²Ð°Ñ Ð¿Ð¸ÑаÑÑ regexp, а даÑÑ Ð²Ð°Ð¼ возможноÑÑÑ ÑзнаÑÑ ÑÑо Ñакое еÑÑÑ. Ркогда ÑÑим Ñдобно полÑзоваÑÑÑÑ… ÐбÑаÑайÑеÑÑ ÐµÑли ÑÑо-Ñо непонÑÑно. Ðли вообÑе ниÑего не понÑÑно, но вам инÑеÑеÑен ÑÑÐ¾Ñ Ð¸Ð½ÑÑÑÑменх
Ðогда-Ñо оÑÐµÐ½Ñ Ð´Ð°Ð²Ð½Ð¾ бÑла пÑидÑмана ÑÐ°ÐºÐ°Ñ Ð·Ð°Ð¼ÐµÑаÑелÑÐ½Ð°Ñ Ð²ÐµÑÑ, как regexp.
Ðогда ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ обÑÑÐ½Ð¾Ð¼Ñ ÑеловекÑ? ÐÑедÑÑавÑÑе, ÑÑо Ñ Ð²Ð°Ñ ÐµÑÑÑ Ð²Ð¾Ñ Ñакое:
Рвам надо поменÑÑÑ ÑÑо на
Ðак ÑеÑиÑÑ ÑакÑÑ Ð·Ð°Ð´Ð°ÑÑ? СкопиÑоваÑÑ ÑÑолбик не полÑÑиÑÑÑ Ð¸Ð±Ð¾ имена и Ñамилии Ñазной длинх Ðожно извÑаÑаÑÑÑÑ Ñ ÑкÑпоÑÑом в excel и игÑаÑÑ Ñо ÑÑолбÑами. Ðожно ÑÑками менÑÑÑ ÐºÐ°Ð¶Ð´ÑÑ ÑÑÑокÑ, но еÑли Ð¸Ñ ÑÑÑÑÑи?
РоÑÐµÐ½Ñ Ð¿ÑоÑÑо:
ÐÑакÑиÑеÑÐºÐ°Ñ ÑаÑÑÑ
ÐÑак, надо взÑÑÑ Ð»Ñбой ÑедакÑоÑ, коÑоÑÑй Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ regexp (напÑимеÑ
Ðак ÑÑим полÑзоваÑÑÑÑ? ÐаÑаем и ÑÑÑанавливаем
УÑÑанавливаем
ÐÑкÑÑваем в нÑм Ñайл Ñ ÑекÑом
ÐÑзÑваем диалог поиÑка Ñ Ð·Ð°Ð¼ÐµÐ½Ð¾Ð¹ (или нажимаем Ctrl+H)
Ðводим regexp, на ÑÑо поменÑÑÑ Ð¸ ÑказÑваем, ÑÑо ÑÑо именно regular expression
ÐолÑÑаем ÑезÑлÑÑах
Ð Ñ
елпе ÑÑого ÑедакÑоÑа немного еÑÑÑ…
ТепеÑÑ Ð¾Ð±ÑÑÑнение ÑÑо Ñам Ñакое бÑло напиÑано
ÐеÑÑм Ð²Ð¾Ñ Ñакой regexp
(\w+) (\w+) (\w+) (\d+-\d+-\d+)
и делаем Ð·Ð°Ð¼ÐµÐ½Ñ Ð½Ð°
\4 \1 \3
ÐопÑÑаемÑÑ Ð¸Ð·Ð±Ð°Ð²Ð¸ÑÑÑÑ Ð¾Ñ Ð¼Ð°Ð³Ð¸ÑеÑкой непонÑÑноÑÑи напиÑанного… Regexp позволÑÐµÑ Ð¾Ð¿Ð¸ÑÑваÑÑ Ñо, ÑÑо нам надо ÑпеÑиалÑнÑми конÑÑÑÑкÑиÑми:
\d – ÑиÑÑа
\w – бÑква
\W – ÐРбÑква (Ñ.е. ÑиÑÑÑ, знаки, …)
^ – наÑало ÑÑÑоки
$ – ÐºÐ¾Ð½ÐµÑ ÑÑÑоки
. – один лÑбой Ñимвол
[1-9] – одна ÑиÑÑа Ð¾Ñ ÐµÐ´Ð¸Ð½Ð¸ÑÑ Ð´Ð¾ 9
(a|b|c) – одна бÑква или a или b или Ñ
+ – ознаÑÐ°ÐµÑ Ð¾Ð´Ð¸Ð½ или болÑÑе
* – ознаÑÐ°ÐµÑ 0 или болÑÑе
и Ñ.д. ÐÑ Ð¼Ð¾Ð¶ÐµÑе поÑмоÑÑеÑÑ Ð½Ð° ÑпиÑок, напÑимеÑ,
ÐапÑÐ¸Ð¼ÐµÑ Ð´Ð°Ñа:
\d{2,4}-\d{2}-\d{2} – Ð¾Ñ Ð´Ð²ÑÑ
до 4 ÑиÑÑ, знак ‘-‘, две ÑиÑÑÑ, знак ‘-‘, две ÑиÑÑÑ
или Ñак:
\d\d\d\d-\d\d-\d\d
или Ñак
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
^\d{2,}\s*$ – найдÑÑ Ð²Ñе ÑÑÑоки, где ÑиÑло наÑинаеÑÑÑ Ð² Ñамом наÑале ÑÑÑоки, ÑодеÑÐ¶Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ñм 2 ÑиÑÑÑ, и в конÑе Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð»Ñбое колиÑеÑÑво пÑобелов до Ñамого конÑа ÑÑÑоки.
РаÑÑмоÑÑим ÑÑо Ñам бÑло в пÑимеÑе:
(\w+) (\w+) (\w+) (\d+-\d+-\d+)
ЧÑо в ÑÑиÑ
ÑÑÑокаÑ
?
Скобки в данном ÑлÑÑае ознаÑаÑÑ Ð³ÑÑппÑ. ÐÑ
номеÑа идÑÑ Ñ ÐµÐ´Ð¸Ð½Ð¸ÑÑ.
Т.е. пеÑÐ²Ð°Ñ Ð³ÑÑппа бÑÐ´ÐµÑ ÑоÑÑоÑÑÑ Ð¸Ð· лÑбого колиÑеÑÑва ÐУÐРдо пеÑвого пÑобела (имÑ)
вÑоÑÐ°Ñ Ð³ÑÑппа бÑÐ´ÐµÑ ÑоÑÑоÑÑÑ Ð¸Ð· лÑбого колиÑеÑÑва ÐУÐРдо ÑледÑÑÑего пÑобела (оÑÑеÑÑво)
ÑÑеÑÑÑ Ð³ÑÑппа бÑÐ´ÐµÑ ÑоÑÑоÑÑÑ Ð¸Ð· лÑбого колиÑеÑÑва ÐУÐРдо ÑледÑÑÑего пÑобела (ÑамилиÑ)
ÑеÑвÑÑÑÐ°Ñ Ð³ÑÑппа – ÑÑо одна или болÑÑе ÑиÑÑа, знак минÑÑ, одна или болÑÑе ÑиÑÑа, знак минÑÑ, одна или болÑÑе ÑиÑÑа…
ÐамениÑÑ Ð½Ð° \4 \1 \3 – Ñ.е. 4-ÑÑ Ð³ÑÑппÑ, поÑом пеÑвÑÑ Ð¸ ÑÑеÑÑÑ (даÑа, имÑ, ÑамилиÑ)
Ðожно пеÑепиÑаÑÑ Ð»ÑÑÑе
(\w+) (\w+) (\w+) (\d{4}-\d{2}-\d{2})
ÐÑÑ Ñо же Ñамое, но ÑоÑно Ñказано, ÑÑо ÑиÑÑ Ð±ÑÐ´ÐµÑ ÑеÑÑÑе, минÑÑ, две ÑиÑÑÑ, минÑÑ, две ÑиÑÑÑ
ÐÑоÑÑо? :) regexp намного легÑе пиÑаÑÑ, Ñем ÑиÑаÑÑ :) ÐопÑобÑйÑе. ÐÐ½Ð¸Ð·Ñ ÑÑÑлки, где можно поигÑаÑÑÑÑ…
Ðе вÑе ÑÑандаÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð·Ð°Ð¿Ð¸ÑÑ \d{1,2} – (одна или две ÑиÑÑÑ)
Ñогда пÑиÑ
одиÑÑÑ Ð¿Ð¸ÑаÑÑ \d+\d* – пеÑÐ²Ð°Ñ ÑиÑÑа обÑзаÑелÑно, вÑоÑой Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ бÑÑÑ (еÑÑÑ ÑонкоÑÑи, но пока гÑÑзиÑÑ Ð½Ðµ бÑдÑ)
или [0-9]+[0-9]*
ÐеÑколÑко ÑÑÑлок:
ÐлÑ
ÐÑимеÑÑ:
[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}
одна или болÑÑе бÑква Ð¾Ñ A до Z, ÑиÑÑÑ, дополниÑелÑнÑе знаÑки, поÑом знак Ñобаки, поÑом опÑÑÑ Ð¾Ð´Ð½Ð° или болÑÑе бÑква Ð¾Ñ A до Z, ÑиÑÑÑ, дополниÑелÑнÑе знаÑки, поÑом ÑоÑка, и Ð¾Ñ 2 до 4 Ñимволов Ð¾Ñ A до Z
(\s)+
менÑем на ” “ или на \1
(\w+) (\w+)
менÑем на
“insert … values (‘\1', ‘\2');“
и Ñак далее…
ÐÑли Ð²Ñ Ð¾ÑвоиÑе ÑÑÐ¾Ñ ÑзÑк поиÑка и манипÑлÑÑий ÑекÑÑом, Ñо ÑможеÑе ÑеÑиÑÑ Ð¼Ð°ÑÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑÑÐ¸Ñ Ð¿Ñоблем :)
ÐбÑаÑайÑеÑÑ, еÑли ÑÑо-Ñо непонÑÑно…