AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Работа с числами

 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
F-rit



Joined: 11 Feb 2013
Posts: 2

PostPosted: Mon Feb 11, 2013 8:51 am    Post subject: Работа с числами Reply with quote

Подскажите пжлст, может уже где-то было обсуждение и есть решение.
Приходится работать с большими объемами текста. И очень актуален вопрос обнаружения чисел дробленых точкой xxx.xxx
Надо их все обнаружить и точку перевернуть в запятую.
Back to top
View user's profile Send private message
DV



Joined: 16 Nov 2006
Posts: 856
Location: Kyiv, Ukraine

PostPosted: Mon Feb 11, 2013 9:47 am    Post subject: Re: Работа с числами Reply with quote

Нужно использовать регулярные выражения.
Регулярные выражения описаны в справке AkelPad, как это ни парадоксально для пользователей, туда не заглядывающих. Эта справка говорит нам:
Code:
.     любой символ
[a-z] диапазон символов

Поскольку . означает любой символ, а мы хотим найти конкретно точку, в регулярном выражении следует использовать "заэкранированную" точку: \.
Поскольку [a-z] означает диапазон символов, а мы хотим искать только цифры, указываем диапазон [0-9]
Итого, выражение вида ЦифраТочкаЦифра выглядит так: [0-9]\.[0-9]
Далее, мы хотим заменить выражение ЦифраТочкаЦифра на ЦифраЗапятаяЦифра. Для такой замены нам нужно временно выделить (запомнить) цифры до и после точки, чтобы они могли участвовать в замене. Что говорит нам справка?
Code:
(pattern) под-выражение, совпадаюшее с pattern и подхватывающее это совпадение

Как мы уже выяснили, с цифрой совпадает выражение [0-9]. Теперь, если мы возмём его в скобки, то как раз получим под-выражение, совпадающее с цифрой и подхватывающее эту цифру. Таким образом, регулярное выражение для поиска становится таким: ([0-9])\.([0-9])
Для замены используем \1,\2
Здесь \1 ссылается на содержимое первой скобки, \2 - второй.
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1648

PostPosted: Mon Feb 11, 2013 9:54 am    Post subject: Reply with quote

F-rit
Примерно так: http://akelpad.sourceforge.net/forum/viewtopic.php?p=21224#21224, но там баг какой-то странный.

Ну, или через SearchReplace.js
Что: ((?:^|[^\d\.])\d+)\.(\d+(?=[^\d\.]|$))
Чем: $1,$2

(то же самое, но в замене $ вместо \)


DV
А я зато баг обнаружил, тоже польза. Very Happy
Back to top
View user's profile Send private message Visit poster's website
F-rit



Joined: 11 Feb 2013
Posts: 2

PostPosted: Mon Feb 11, 2013 10:00 am    Post subject: Reply with quote

Спасибо за разъяснения. В области программирования, я продвинулся не далее элементарного html. Толкования на Русском языке оказались не лишними.
Back to top
View user's profile Send private message
bayzhanov



Joined: 12 May 2013
Posts: 4

PostPosted: Sun May 12, 2013 5:47 pm    Post subject: Reply with quote

Может это баг: при использовании положительного просмотра назад в регулярном выражении (?<=Z)(\d+\.\d+) не заменяет что бы не указывал бы в поле заменить чем
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Mon May 13, 2013 7:14 pm    Post subject: Reply with quote

bayzhanov
1. Сообщения о багах размещаются в отдельной ветке, а не тиражируются по нескольким темам. Если же Вы сами не можете определиться, считать то или иное поведение багом или нет, то Ваше сообщение может быть просто проигнорировано.
2. Предположительно такое поведение описывается в документации как "...Соответствие не сохраняется для последующего использования..."
3. Факт, что замена работает в варианте использования "Заменить всё".
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group