Страница 2 из 2

Re: Regular Expression очень надо

Добавлено: 24 июн 2015, 23:16
borei
Kiseta писал(а):задача следующая, надо одним движением с помощью Search/Replace задействуя Regular Expression превратить это

Код: Выделить всё

SomeFunction "DIR_AB", "lfskjdf"
SomeFunction "DIR_AB", "sdjfjfalsdjf"
SomeFunction "DIR_BC_AB", "askldjflsakj"
SomeFunction "DIR_CD", "lksdjfaksj"
SomeFunction "DIR_BC", "sakdjff[aslkdf"
SomeFunction "DIR_CD_AB", "skjdhfj"
SomeFunction "DIR_BCD_AB", "woieurowiuer"
SomeFunction "DIR_CD", "xscmnv"
SomeFunction "DIR_AB", "slkdfljs"
SomeFunction "DIR_AB", "llskdjflskjdf"

вот в это

Код: Выделить всё

"lfskjdf"
"sdjfjfalsdjf"
"askldjflsakj"
"lksdjfaksj"
"sakdjff[aslkdf"
"skjdhfj"
"woieurowiuer"
"xscmnv"
"slkdfljs"
"llskdjflskjdf"
короче надо убрать SomeFunction call - это всегда одинаково, плюс первый аргумент, который может быть какой угодно, одинаковый или разный. Сейчас движений от двух и более, в зависимости от того сколько разных вариантов первого аргумена

поможите добрые люди плиз :)

Спасибо!
в linux

cat <file_name> | awk -F ',' '{print $2}' > <new_filename>

Re: Regular Expression очень надо

Добавлено: 25 июн 2015, 01:21
Kiseta
Kate писал(а):search pattern?
да, хорошо, наверное больше подходит в данном случае, спасибо Kate! :)

Re: Regular Expression очень надо

Добавлено: 03 июл 2015, 16:53
Algor
для строки регекспа в редакторе сработает такое
.*(, )

Re: Regular Expression очень надо

Добавлено: 29 фев 2016, 11:47
Kiseta
есть вот такой текст

Код: Выделить всё

PROGRESSEmbrace constraintsBuild half a product, not a half-assed productStart at the epicenterIgnore the details early onMaking the call is making progressBe a curatorThrow less at the problemFocus on what won't changeTone is in your fingersSell your by-productsLaunch now 

PRODUCTIVITYIllusions of agreementReasons to quitInterruption is the enemy of productivityMeetings are toxicGood enough is fineQuick winsDon't be a heroGo to sleepYour estimates suckLong lists don't get doneMake tiny decisions 

COMPETITORSDon't copyDecommoditize your productPick a fightUnderdo your competitionWho cares what they're doing?


нужно regular expression который найдет capital letter после которой идет small letter и двинет текст начинающийся с capital letter на new line

find [A-Z][a-z]
replace /n [A-Z] - не работает - capital letter заменяется буквально на [A-Z]

спасибо!

Re: Regular Expression очень надо

Добавлено: 29 фев 2016, 12:26
tasko
Kiseta писал(а): find [A-Z][a-z]
replace /n [A-Z] - не работает - capital letter заменяется буквально на [A-Z]

спасибо!
Говрят, надо заменять специальным кодом
John Smith, 385 Central Ave., Cincinnati, OH, 45238
into:
45238, Smith, John, 385 Central Ave., Cincinnati, OH

UltraEdit RegExp:
Find What: %^([a-z]+^) ^([a-z]+^), ^(*^), ^(*^), ^(*^), ^([0-9]+^)
Replace With: ^6, ^2, ^1, ^3, ^4, ^5

UNIX RegExp:
Find What: ^([a-z]+) ([a-z]+), (.*), (.*), (.*), ([0-9]+)
Replace With: \6, \2, \1, \3, \4, \5

http://www.ultraedit.com/support/tutori ... sions.html

Re: Regular Expression очень надо

Добавлено: 29 фев 2016, 20:56
mrskhris
perl -p -i.old -e 's#([A-Z])([a-z])#\n$1$2#g' ttt.txt

Re: Regular Expression очень надо

Добавлено: 29 фев 2016, 22:06
Kiseta
ага, спасибо всем кто ответил, все сделано (в ручную) как всегда нужно было срочно, быстрее было в ручную, слава богу не много оказалось

Re: Regular Expression очень надо

Добавлено: 08 дек 2016, 09:54
Yury
еще один кладезь, может кому надо:

https://regex101.com/#javascript

Re: Regular Expression очень надо

Добавлено: 10 июл 2018, 10:56
Kiseta
Найти текст вот в таком виде - с запятой, разные суммы, пробел, CR

Код: Выделить всё

1,887.31 CR
Убрать запятую, пробел, CR, добавить знак минус в начале строки - что бы получилось вот так

Код: Выделить всё

-1887.31

Re: Regular Expression очень надо

Добавлено: 10 июл 2018, 11:20
Kiseta
Kiseta писал(а):Найти текст вот в таком виде - с запятой, разные суммы, пробел, CR

Код: Выделить всё

1,887.31 CR
Убрать запятую, пробел, CR, добавить знак минус в начале строки - что бы получилось вот так

Код: Выделить всё

-1887.31

Код: Выделить всё

\d\,\d+\.\d+\s+CR
заменила в два шага, сначала минус в начале строки, потом убрать пробел CR

всем спасибо :D

Re: Regular Expression очень надо

Добавлено: 12 июл 2018, 20:47
Leo Gan
Kiseta писал(а):задача следующая, надо одним движением с помощью Search/Replace задействуя Regular Expression превратить это

Код: Выделить всё

SomeFunction "DIR_AB", "lfskjdf"
SomeFunction "DIR_AB", "sdjfjfalsdjf"
SomeFunction "DIR_BC_AB", "askldjflsakj"
SomeFunction "DIR_CD", "lksdjfaksj"
SomeFunction "DIR_BC", "sakdjff[aslkdf"
SomeFunction "DIR_CD_AB", "skjdhfj"
SomeFunction "DIR_BCD_AB", "woieurowiuer"
SomeFunction "DIR_CD", "xscmnv"
SomeFunction "DIR_AB", "slkdfljs"
SomeFunction "DIR_AB", "llskdjflskjdf"

вот в это

Код: Выделить всё

"lfskjdf"
"sdjfjfalsdjf"
"askldjflsakj"
"lksdjfaksj"
"sakdjff[aslkdf"
"skjdhfj"
"woieurowiuer"
"xscmnv"
"slkdfljs"
"llskdjflskjdf"
короче надо убрать SomeFunction call - это всегда одинаково, плюс первый аргумент, который может быть какой угодно, одинаковый или разный. Сейчас движений от двух и более, в зависимости от того сколько разных вариантов первого аргумена

поможите добрые люди плиз :)

Спасибо!
Find:
(.* )(\".+\")$
Replace:
\2

работает в Notepad++

Что все это значит? В первых скобках ищется все, что заканчивается на пробел. Во вторых скобках ищется все, что начинается на двойную кавычку, потом хоть один любой символ, потом опять двойная кавычка сразу перед концом строки.
То, что находится в первых скобках обозначается в Replace, как \1 а что в вторых скобках - обозначается как \2
т.е. мы выбрасываем все, что перед последним в строке закаыченным сочетанием. Оставляем все, что в этом последнем сочетании, вместе с кавычками.

Re: Regular Expression очень надо

Добавлено: 12 июл 2018, 21:06
Leo Gan
Kiseta писал(а):Найти текст вот в таком виде - с запятой, разные суммы, пробел, CR

Код: Выделить всё

1,887.31 CR
Убрать запятую, пробел, CR, добавить знак минус в начале строки - что бы получилось вот так

Код: Выделить всё

-1887.31
in Notepad++
Find:
((\d{1,3}(,\d\d\d)*)\.?\d*) CR$
Replace:
-\1

Test:
1,887.31 CR
1 CR
1.31 CR
1,887 CR
1,234,234,887.31 CR
1,234,234,887 CR

Result:
-1,887.31
-1
-1.31
-1,887
-1,234,234,887.31
-1,234,234,887

Re: Regular Expression очень надо

Добавлено: 12 июл 2018, 22:51
Kiseta
Leo Gan писал(а):
Что все это значит? В первых скобках ищется все, что заканчивается на пробел. Во вторых скобках ищется все, что начинается на двойную кавычку, потом хоть один любой символ, потом опять двойная кавычка сразу перед концом строки.
То, что находится в первых скобках обозначается в Replace, как \1 а что в вторых скобках - обозначается как \2
т.е. мы выбрасываем все, что перед последним в строке закаыченным сочетанием. Оставляем все, что в этом последнем сочетании, вместе с кавычками.
Вот! Спасибо за объяснение :up:
не просто, перефразируя библию, бананами накормить, а еще и научить их выращивать :D

Re: Regular Expression очень надо

Добавлено: 12 июл 2018, 22:53
Kiseta
Leo Gan писал(а):
Kiseta писал(а):Найти текст вот в таком виде - с запятой, разные суммы, пробел, CR

Код: Выделить всё

1,887.31 CR
Убрать запятую, пробел, CR, добавить знак минус в начале строки - что бы получилось вот так

Код: Выделить всё

-1887.31
in Notepad++
Find:
((\d{1,3}(,\d\d\d)*)\.?\d*) CR$
Replace:
-\1

Test:
1,887.31 CR
1 CR
1.31 CR
1,887 CR
1,234,234,887.31 CR
1,234,234,887 CR

Result:
-1,887.31
-1
-1.31
-1,887
-1,234,234,887.31
-1,234,234,887
Тоже спасибо!

Код: Выделить всё

1,234,234,887.31 CR
1,234,234,887 CR
зачетно бы в банке на счете смотрелось 8)