Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2017-12-27 12:29:10

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Jak powinien wyglądać kod RegExp?

x1 = ".,:-!?text. Txt"
x2 = ".,:-!?Text: txt"

Chciałbym usunąć z powyższego tekstu znaki "[?!;:,\.-]", które nie są literami
i nie są cyframi [^a-ząćęłńóśźż0-9A-ZĄĆĘŁŃÓŚŹŻ]" z lewej strony przed wyrazem "text"

Jak powinien wyglądać kod?
myRegExp.Pattern = "???????"

Offline

 

#2  2017-12-27 14:00:53

  seler - Użytkownik

seler
Użytkownik
Zarejestrowany: 2012-05-15

Re: Jak powinien wyglądać kod RegExp?

taki sed załatwia sprawę, przynajmniej dla twoich przykładów:

sed 's/^\([^"]*"\)[?!;:,\.-]*\(Text.*\)$/\1\2/gI'

Ostatnio edytowany przez seler (2017-12-27 14:02:09)


a to feler westchnął seler

Offline

 

#3  2017-12-27 15:10:37

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: Jak powinien wyglądać kod RegExp?

W pythonie może to wyglądać tak:

Kod:

import re
pat = re.compile('([^\w\d]*)')
x1 = r'.,:-!?text. Txt'
s = re.sub(pat, '', x1,count=1)

python regex - ([^\w\d]*)(.*)
pcre - ([^[:alnum:]]*)(.*)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#4  2017-12-27 15:52:13

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Re: Jak powinien wyglądać kod RegExp?

To używam do VBS script
a to sprawdzam pattern: http://regexstorm.net/tester

ten pasuje
([^\w\d]*) , wielkie dzięki

na testerze zaznacza również wszystko pomiędzy wyrazami
a w VBS jest OK.

Ostatnio edytowany przez sexy69 (2017-12-27 16:06:57)

Offline

 

#5  2017-12-27 17:34:50

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Re: Jak powinien wyglądać kod RegExp?

jest problem:
z wyrazu !żółć
usunięte zostaje wszystko,

Ostatnio edytowany przez sexy69 (2017-12-27 17:35:13)

Offline

 

#6  2017-12-27 20:15:45

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: Jak powinien wyglądać kod RegExp?

To kewstia obsługi unicode. Jak to jest w VBS to nie wiem. W pythonie to się załatiwa tak:

Kod:

In [11]: import re
    ...: pat = re.compile('([^\w\d]*)', re.UNICODE)
    ...: x1 = r'.,:-!?text. Txt'
    ...: s = re.sub(pat, '', x1,count=1)
    ...: 

In [12]: x2 = '!żółć'

In [13]: s = re.sub(pat, '', x2, count=1)

In [14]: 

In [14]: s
Out[14]: 'żółć'

http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#7  2017-12-27 20:53:11

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Re: Jak powinien wyglądać kod RegExp?

Nic z tego nie da się. zaadoptować.

W skrypcie VBS też mam to rozwiązane:

Biorę do pętli całe zdanie i sprawdzam po kolei od lewej czy są znaki do usunięcia.
Jeśli tak to usuwam i sprawdzam następny znak aż natrafię na literę albo liczbę to wchodzę z pętli.

RegExp załatwiłby to dwiema liniami tekstu.

myRegExp.Pattern = "??????????"
Text(nr) = myRegExp.Replace(Text(nr), "")

krócej i szybciej.

Sądziłem, że w RegExp można każdy kod dopasować do sytuacji ale,
zaczynam wątpić w jego uniwersalność.

Ostatnio edytowany przez sexy69 (2017-12-27 20:54:01)

Offline

 

#8  2017-12-27 21:43:32

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: Jak powinien wyglądać kod RegExp?

Umieść to co chcesz wyrzucić:
([!?=:;.]*).*


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#9  2017-12-28 09:11:35

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Re: Jak powinien wyglądać kod RegExp?

taki powinien być efekt:

.,:-!?żółć. Txt -> żółć. Txt
.,:-!?Żółć: txt -> Żółć: txt


to nie działa: "([!?=:;.]*).*

Text(nr) = ".,:-!?żółć. Txt"
myRegExp.Pattern = "([!?=:;.]*).*"
Set poszukiwane = myRegExp.Execute(Text(nr))
wynik = poszukiwane.Item(0)
'powinno być: żółć. Txt
a jest wszystko (nic nie usunięte.)

Ostatnio edytowany przez sexy69 (2017-12-28 09:20:50)

Offline

 

#10  2017-12-28 09:40:04

  sexy69 - Użytkownik

sexy69
Użytkownik
Zarejestrowany: 2017-12-27

Re: Jak powinien wyglądać kod RegExp?

wykryłem to:
http://regexstorm.net/tester?p=%28%5b%5b%5cw%5d.*%5 … 2%c4%87%3a+24

teraz tylko odwrócić całe zaznaczenie i będzie OK.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)