Regexp segítég kérés

Fórumok

Regexp segítég kérés

Hozzászólások

Majdnem jo volt az elgondolas amit tegnap irtam :)
Szoval, van egy postfixem es abban szeretnem hogy a .doc mellekletek kozul a .doc es .doc?= kivetelevel reject -eljen minden mas .doc-ot (pl. .doc. .doc? .doca .doc.a stb), tehat pont a tegnapi irt regexp (.*\.doc$|.*\.doc\?=) ellenkezojere van szuksegem. Mert ugye ha a file nevben nincs ekezet akkor name="valami.doc" ha van bent ekezet akkor meg name="=?ISO-8859-2?Q?B=E.doc?=" van a header-ben, es jolenne ha ezeket nem dobalna el.
Tudom nehez eset vagyok, de a helyes megfejtok kozt 1-2 so:rt v. bort szivesen kisorsolok... :D
Koszi!

Mik

[quote:b80c0c0d53="Mik"]Majdnem jo volt az elgondolas amit tegnap irtam :)
Szoval, van egy postfixem es abban szeretnem hogy a .doc mellekletek kozul a .doc es .doc?= kivetelevel reject -eljen minden mas .doc-ot (pl. .doc. .doc? .doca .doc.a stb), tehat pont a tegnapi irt regexp (.*\.doc$|.*\.doc\?=) ellenkezojere van szuksegem. Mert ugye ha a file nevben nincs ekezet akkor name="valami.doc" ha van bent ekezet akkor meg name="=?ISO-8859-2?Q?B=E.doc?=" van a header-ben, es jolenne ha ezeket nem dobalna el.
Tudom nehez eset vagyok, de a helyes megfejtok kozt 1-2 so:rt v. bort szivesen kisorsolok... :D
Koszi!

Mik

tehat minden amiben van .doc(valami) de nem ?=

regexp:
.*\.doc(\.|!\?=).*
valami ilyesmi lenne a regexp, csak azt nem tudom hogy a grep megeszi-e

[quote:1f69d29802="szipka"][quote:1f69d29802="Mik"]Majdnem jo volt az elgondolas amit tegnap irtam :)
Szoval, van egy postfixem es abban szeretnem hogy a .doc mellekletek kozul a .doc es .doc?= kivetelevel reject -eljen minden mas .doc-ot (pl. .doc. .doc? .doca .doc.a stb), tehat pont a tegnapi irt regexp (.*\.doc$|.*\.doc\?=) ellenkezojere van szuksegem. Mert ugye ha a file nevben nincs ekezet akkor name="valami.doc" ha van bent ekezet akkor meg name="=?ISO-8859-2?Q?B=E.doc?=" van a header-ben, es jolenne ha ezeket nem dobalna el.
Tudom nehez eset vagyok, de a helyes megfejtok kozt 1-2 so:rt v. bort szivesen kisorsolok... :D
Koszi!

Mik

tehat minden amiben van .doc(valami) de nem ?=

regexp:
.*\.doc(\.|!\?=).*
valami ilyesmi lenne a regexp, csak azt nem tudom hogy a grep megeszi-e

utananeztem valaminek a tagadasa az[^(valami)]

egrep -e ".*\.doc[^\?=].*"

[quote:9aa4a9d988="szipka"]

utananeztem valaminek a tagadasa az[^(valami)]

egrep -e ".*\.doc[^\?=].*"

A [^valami] nem csak 1 karakert tagad? Egyebkent kezedem feladni, nembiztos h. ezt regexp-el kellene megcsinalnom...

Hogy valaszoljak is magamnak, nem csak 1 karaktert lehet tagadni. Akkor:
[code:1:eb4da05952] [^(.*\.doc\?=)].* [/code:1:eb4da05952]
kiprobalom

[code:1:1a124a8295]
fules@chaos:/tmp$ cat proba
name="valami.doc" jo
name="valami.doc." nem jo
name=".doc" nem jo
name="valami.doc?=" jo

fules@chaos:/tmp$ grep "\"..*\.doc\(\"\|\?=\)" proba
name="valami.doc" jo
name="valami.doc?=" jo
[/code:1:1a124a8295]
kezdődjön idézőjellel: \"
valami karakter jöjjön utána: .
valami (akár üres) string: .*
az a string, hogy '.doc': \.doc
aztán egy blokk: \( ... \), ami:
egy idézőjel: \"
VAGY: \|
az, hogy '?=': \?=

Persze ha a filenévben escape-elt idézőjelek vannak, azon ez is megbukik.

[code:1:36259125a7]egrep -v ".*\.doc(\?=)?$"[/code:1:36259125a7]
Ha nem tévedek ezt keresed. Vagyis: bármi után .doc (esetlegesen ?= végződéssel) a sor végén, a grep -v kapcsolója meg invertálja az eredményt.

Sziasztok.
Remélem vannak itt regexp-hez értő okos emberek!
Olyat szeretnék ami egy szövegben CSAK a .doc VAGY a .doc?= -t találja meg. Pl. \.doc(\?=)?$ azzal a különbséggel, hogy ne csak a sorvégére működjön... Megvalósítható ez?

Köszi előre is!

Mik

[quote:3e36852354="Mik"]Sziasztok.
Remélem vannak itt regexp-hez értő okos emberek!
Olyat szeretnék ami egy szövegben CSAK a .doc VAGY a .doc?= -t találja meg. Pl. \.doc(\?=)?$ azzal a különbséggel, hogy ne csak a sorvégére működjön... Megvalósítható ez?

Köszi előre is!

Mik

$ = sorvege...
btw man perlre ill google.

t

[quote:65032243d3="Mik"]
Olyat szeretnék ami egy szövegben CSAK a .doc VAGY a .doc?= -t találja meg. Pl. \.doc(\?=)?$ azzal a különbséggel, hogy ne csak a sorvégére működjön... Megvalósítható ez?

[code:1:65032243d3]grep \.doc[/code:1:65032243d3]mukodik!

[quote:850d0d856b="tibyke"]

$ = sorvege...
btw man perlre ill google.

t

Az ok, hogy $ sorvege, de ha kiveszem akkormeg minden .doc -al kezdodot megtalal, enmeg pont nem azt szeretnem...

[quote:971c91b5b8="Mik"]
Az ok, hogy $ sorvege, de ha kiveszem akkormeg minden .doc -al kezdodot megtalal, enmeg pont nem azt szeretnem...

Bocs, akkor felreertettem.

[quote:d2e44e69c0="begyu"]

[code:1:d2e44e69c0]grep \.doc[/code:1:d2e44e69c0]mukodik!

Igen igen, de igy megtalal mindent ami .doc -al kezdodik, nekem meg az lenne a jo ha, csak a .doc -ot vagy a .doc?= -t talalna meg.

[quote:d16d51eea4="Mik"]
Igen igen, de igy megtalal mindent ami .doc -al kezdodik, nekem meg az lenne a jo ha, csak a .doc -ot vagy a .doc?= -t talalna meg.

En ugy tudom, hogy a grep egesz sorokat talal meg,
tehat minden sort, ami tartalmazza a regexp-t.

[quote:42368a25d4="Mik"][quote:42368a25d4="begyu"]

[code:1:42368a25d4]grep \.doc[/code:1:42368a25d4]mukodik!

Igen igen, de igy megtalal mindent ami .doc -al kezdodik, nekem meg az lenne a jo ha, csak a .doc -ot vagy a .doc?= -t talalna meg.

Ezt megint rosszul irtad..:)

tehat azt keresed ami:

kezdodik valamivel ES a kiterjesztese valami.doc VAGY valami.doc?=

pl ( vegulis atirtam erre: ez nez ki a legjobban )
[code:1:42368a25d4]
egrep -i '*.\.doc$|*.\.doc\?=.*'
[/code:1:42368a25d4]

Vagy hasonlo..:)

[quote:5a491bbf48="WoOh"]
Ezt megint rosszul irtad..:)

tehat azt keresed ami:

kezdodik valamivel ES a kiterjesztese valami.doc VAGY valami.doc?=

pl
[code:1:5a491bbf48]
egrep -i '.*\.doc$|.*\.doc\?='
[/code:1:5a491bbf48]

Vagy hasonlo..:)

Bocs ha hulyen fogalmaztam. Azert azthiszem sikerult megertetnem magam, ez lesz az amit en keresek. Koszi!