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 

поиск и замена
Goto page Previous  1, 2, 3 ... 12, 13, 14, 15, 16  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Apr 22, 2013 10:27 am    Post subject: Reply with quote

Quote:
это что, киберспорт такой - писать на двух языках одновременно, а не поочередно?

Зачем придираешься, что человек знает, на том и хочет писать.
klopus
поскольку скрипт на JS, функция тоже должна быть на JS. Но это не страшно, ты лучше опиши, что она должна делать.
Back to top
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Mon Apr 22, 2013 1:15 pm    Post subject: Reply with quote

Fr0sT wrote:
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>


начал с этого и замены не произошло Sad
Back to top
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Mon Apr 22, 2013 1:17 pm    Post subject: Reply with quote

KDJ wrote:
klopus
Replace dialog.

Simply, without regular expressions:
What: <Тег>0.354</Тег>
With: <Тег>0.4</Тег>

With regular expressions:
What: (?<=<Тег>0\.)\d\d(\d)(?=</Тег>)
With: \1

This last will replace
<Тег>0.xyz</Тег>
(where x,y,z any digit 0-9)
with
<Тег>0.z</Тег>

not working Sad
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Mon Apr 22, 2013 4:53 pm    Post subject: Reply with quote

klopus wrote:
Fr0sT wrote:
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>


начал с этого и замены не произошло Sad

Совет рабочий. Проверяйте. Где-то у Вас косяк. Возможно Вы скопипастили шаблоны поиска/замены, но элементарно забыли заменить слово "Тег" из примера на его истинное значение из рабочего текста.
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Mon Apr 22, 2013 5:00 pm    Post subject: Reply with quote

klopus wrote:
KDJ wrote:
klopus
Replace dialog.
...
With regular expressions:
What: (?<=<Тег>0\.)\d\d(\d)(?=</Тег>)
With: \1
...

not working :(

Если речь об этой части (With regular expressions), то тут действительно есть один тонкий момент или, если хотите, "подводный камень"...
Короче говоря, надо жать "Заменить всё", а не "Заменить".
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1441
Location: Poland

PostPosted: Mon Apr 22, 2013 5:07 pm    Post subject: Reply with quote

klopus wrote:
KDJ wrote:
klopus
Replace dialog.

Simply, without regular expressions:
What: <Тег>0.354</Тег>
With: <Тег>0.4</Тег>

With regular expressions:
What: (?<=<Тег>0\.)\d\d(\d)(?=</Тег>)
With: \1

This last will replace
<Тег>0.xyz</Тег>
(where x,y,z any digit 0-9)
with
<Тег>0.z</Тег>

not working Sad

For me it works properly.
For this regular expression is required AkelPad version 4.8.2.
Or maybe you badly copied the regular expression. Should be no leading or trailing spaces.
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Mon Apr 22, 2013 9:47 pm    Post subject: Reply with quote

Fr0sT wrote:
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>
Если же надо именно округлять числа, то поможет скрипт SearchReplace, там можно ставить собственную JS-функцию в качестве замены.

Исходя из предположения, что речь действительно идет об округлении значений определенного тега до одного знака после запятой, можно предложить вот что (в качестве предварительного наброска):
Запустить скрипт SearchReplace.js
Что: (<Тег>)(\d+\.\d+)(</Тег>)
Чем: var x = Math.round(parseFloat($2)*10)/10; return $1 + x.toString(10) + $3;

галки на "Регулярные выражения" и "Заменять на функцию".
По моему разумению, средняя часть должна брать все неотрицательные числа с дробной частью.
Функция написана по образу и подобию той, что идет в примере к скрипту SearchReplace.js
Back to top
View user's profile Send private message
klopus



Joined: 21 Apr 2013
Posts: 5

PostPosted: Mon Apr 22, 2013 10:03 pm    Post subject: Reply with quote

opk44 wrote:
Fr0sT wrote:
Регулярки включить,
Что: <Тег>0.35\d</Тег> Чем: <Тег>0.4</Тег>
Если же надо именно округлять числа, то поможет скрипт SearchReplace, там можно ставить собственную JS-функцию в качестве замены.

Исходя из предположения, что речь действительно идет об округлении значений определенного тега до одного знака после запятой, можно предложить вот что (в качестве предварительного наброска):
Запустить скрипт SearchReplace.js
Что: (<Тег>)(\d+\.\d+)(</Тег>)
Чем: var x = Math.round(parseFloat($2)*10)/10; return $1 + x.toString(10) + $3;

галки на "Регулярные выражения" и "Заменять на функцию".
По моему разумению, средняя часть должна брать все неотрицательные числа с дробной частью.
Функция написана по образу и подобию той, что идет в примере к скрипту SearchReplace.js


на самом деле округление было не целью, но и так получилось хорошо Smile Спасибо всем за помощь!
Back to top
View user's profile Send private message
saym101



Joined: 13 Nov 2007
Posts: 24
Location: Voronezh

PostPosted: Sat May 04, 2013 9:44 am    Post subject: Reply with quote

Не получилось сделать замену с регулярными выражениями -
Делаем replace с включёнными regular expressions. Заменяем %^(*^)/i на $^1 Эта операция заменяет /i в конце строки на символ $ в начала строки.
Code:
1000-километровой=<тысячекилометро<вой> /i
1000-лепестковым=<тысячелепестко<вым> /i
100-кубовой=<100-кубо<вой> /i
10-километровый=<десяти-километровый> /i
110-метровую=<стодесятиметро<вую> /i


должно
Code:

$1000-километровой=<тысячекилометро<вой>
$1000-лепестковым=<тысячелепестко<вым>
$100-кубовой=<100-кубо<вой>
$10-километровый=<десяти-километровый>
$110-метровую=<стодесятиметро<вую>
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1441
Location: Poland

PostPosted: Sat May 04, 2013 11:16 am    Post subject: Reply with quote

saym101
What: ^(.+) /i$
With: $\1
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Sat May 04, 2013 11:51 am    Post subject: Reply with quote

saym101 wrote:
Не получилось сделать замену с регулярными выражениями...
Можно было и без регулярок обойтись, просто "по рабоче-крестьянски".
Что: /i\n
Чем: \n$
(с галочкой на Esc-последовательностях)

Но у такого способа два маленьких недостатка: 1) первая и последняя строки потребуют ручной коррекции; 2) если на концах строк после "/i" есть пробелы, то сначала придется сделать RTRIM (выделить весь текст CTRL+A, затем ALT+BACKSPACE) и только потом выполнять замену.
Back to top
View user's profile Send private message
bayzhanov



Joined: 12 May 2013
Posts: 4

PostPosted: Sun May 12, 2013 9:02 am    Post subject: Reply with quote

Подскажите как с помощью регулярных выражений в тексте формата:
X-65.062Y-0.041Z63.402
X-64.71Y-0.116Z63.533
X-64.35Y-0.194Z63.635
X-63.617Y-0.351Z63.785
X-63.249Y-0.43Z63.856
Найти:
1.Минимальный/максимальный X/Y/Z?

Заменить:
1.Увеличить значение иксов на пять например X-65.062 > X-60.062 ?
2. И в общем случае есть механизмы в регулярных выражениях или других плагинах работы с уравнениями например как в экселе?
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1441
Location: Poland

PostPosted: Sun May 12, 2013 3:37 pm    Post subject: Reply with quote

bayzhanov wrote:
Подскажите как с помощью регулярных выражений в тексте формата:
X-65.062Y-0.041Z63.402
X-64.71Y-0.116Z63.533
X-64.35Y-0.194Z63.635
X-63.617Y-0.351Z63.785
X-63.249Y-0.43Z63.856
Найти:
1.Минимальный/максимальный X/Y/Z?

You can use SearchReplace.js script with "Regular expression" and "Replace with function" parameters.
What:
Code:
(X|Y|Z)(-?\d*\.?\d+)

With:
Code:
var n = Number(arguments[2]); var f = arguments.callee; if (arguments[1] == "X") {if (!(f.xL < n)) f.xL = n; if (!(f.xH > n)) f.xH = n;} else if (arguments[1] == "Y") {if (!(f.yL < n)) f.yL = n; if (!(f.yH > n)) f.yH = n;} else if (arguments[1] == "Z") {if (!(f.zL < n)) f.zL = n; if (!(f.zH > n)) f.zH = n;} if (! /(X|Y|Z)(-?\d*\.?\d+)/.test(arguments[arguments.length - 1].substr(arguments[arguments.length - 2] + arguments[0].length))) WScript.Echo("X min=" + f.xL + "\n" + "X max=" + f.xH + "\n" + "Y min=" + f.yL + "\n" + "Y max=" + f.yH + "\n" + "Z min=" + f.zL + "\n" + "Z max=" + f.zH); return arguments[0];

And you should press "Replace all" button.

bayzhanov wrote:
Заменить:
1.Увеличить значение иксов на пять например X-65.062 > X-60.062 ?

What: (X)(-?\d*\.?\d+)
With: return arguments[1] + (Number(arguments[2]) + 5).toFixed(3);
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 366

PostPosted: Sun May 12, 2013 7:08 pm    Post subject: Reply with quote

bayzhanov wrote:
...
2. И в общем случае есть механизмы в регулярных выражениях или других плагинах работы с уравнениями например как в экселе?
Можно попробовать плагин Scripts (поддержка JScript/VBScript). Распарсить текст в массив и с элементами уже играться как нужно.
Простейший пример (JScript):
Code:
// парсим выделенный текст
var pSelText=AkelPad.GetSelText().split(/X|Y|Z|\r/);
// шоу и арифметика
for (i = 0; i < pSelText.length; ++i)
    {
      WScript.Echo(pSelText[i]);
      WScript.Echo(parseFloat(pSelText[i])+5);
    }
Back to top
View user's profile Send private message
Jumperbest



Joined: 15 May 2013
Posts: 5

PostPosted: Wed May 15, 2013 6:48 pm    Post subject: Автозамена Reply with quote

Всем Здравствуйте. Умоляю помогите нависать скрипт авто замены что бы

<item value=" просто удялялось
"><text> менялось на пробел и "
</text></item> меняось на "

В результати из такого
<item value="7"><text>Луганск</text></item>
превращалось в такое
7 "Луганск"

И все это делалось нажатием(по возможности одной кнопки).

Помогите пожалуйста начинающиму прогиру )
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
Goto page Previous  1, 2, 3 ... 12, 13, 14, 15, 16  Next
Page 13 of 16

 
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