vyhladanie a vybratie niecoho v texte

Programovacie jazyky, rady, poradňa...
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

vyhladanie a vybratie niecoho v texte

Príspevok od používateľa lucas03 »

Ako sa da spravit nieco ako program, ze tam dam text a on mi vyberie vsetky slová co zacinaju napriklad tymto
http://www.megaupload.com/?d=
a vyberie mi pismena aj po medzeru, vsetok ostatny text mi zmaze alebo tieto linky exportne niekde do zlozky, a aby bol kazdy link na jeden riadok.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Dá. ;) Použi nejakú regexp knižnicu.
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

nemozes to trochu upresnit?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Čo konkrétne potrebuješ? Aký programovací jazyk chceš použiť? Aký operačný systém? Napr. v php je na to funkcia preg_match (prípadne preg_match_all). V C by si mohol použiť napr. knižnicu pcre.
Gangy
Darca
Darca
Používateľov profilový obrázok
Príspevky: 7045
Registrovaný: 18 nov 2004, 21:26
Bydlisko: Žiaľ nad Hrobom

Príspevok od používateľa Gangy »

Ak ti ide len o linky na megaupload tak cely ten tvoj text hod do USD.
Ten si linky pekne oddeli a potom ich uz len vsetky oznacis a stlacis ctrl + c.
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

ok, tak dik chrono, ja som myslel ze to pojde nejako jednoduchsie
gandy- dik budem to asi pouzivat ale bude to zle lebo tam su dva druhy linkov a vela texty ako kedy to bolo uploadnute, a ja chcem len megaupload linky z celeho textu.
Gangy
Darca
Darca
Používateľov profilový obrázok
Príspevky: 7045
Registrovaný: 18 nov 2004, 21:26
Bydlisko: Žiaľ nad Hrobom

Príspevok od používateľa Gangy »

no, ak je toho vela tak mozes zasa spravit inak.
Budes mat teda z usd text s linkami na megac a napr. rapidshare.com.
Das ten text do wordu, stlacis ctrl+f hore kliknes na nahradit a adresu rapidshare.com das nahradit napriklad medzerou. Tym padom to uz usd nerozozna. Dokripleny text z wordu zasa slahnes do usd a uz tam budes mat len linky na megac. Voila :wink:
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

ok dik
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

Kód: Vybrať všetko

<?

echo "<form action=shout.php method=post>
<textarea name=text></textarea>
<input type=submit name=ok value=ok>
</form>";


if ($_POST['ok']) {
$shout_message = $_POST['text'];
$www =  strstr($shout_message,"megaupload");
$up = "";
if (!$www) {
   $www = strstr($shout_message,"www.");
}
$www1 = strpos($www," ");
if (!$www1) {
   $replace_www = substr($www,0,strlen($www));
} else {
   $replace_www = substr($www,0,$www1);
}
echo $replace_www;
}
?>
skus si toto... ak zadas asdasd megaupload asdasdasd zobrazi ti iba megaupload... nejako si to uz uprav podla seba
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

neppo napísal: skus si toto... ak zadas asdasd megaupload asdasdasd zobrazi ti iba megaupload... nejako si to uz uprav podla seba
ok, dik nejako takto som si to predstavoval ale mohol by si tam este nieco upravit??
skus ako to robi

Kód: Vybrať všetko

http://www.megauploadforum.lolco.net/shout.php
1-urobilo to tak ze vypisalo vsetok text dokial bolo napisane prve megaupload, ale nevypisalo len linky ale aj text za prvym linkom
2- mohlo by to nakonci zobrazovat pod sebou a nie vedla seba?
Inak tu je troska upravene, ak to este skusis pls prerob toto.

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>type out megaupload links</title>
</head>
<body>
<?

echo "<form action=shout.php method=post>
<textarea name=text style='height: 400px; width: 800px;'></textarea>
<input type=submit name=ok value=ok>
</form>";


if ($_POST['ok']) {
$shout_message = $_POST['text'];
$www =  strstr($shout_message,"http://www.megaupload.com/?d=");
$up = "";
if (!$www) {
   $www = strstr($shout_message,"http://");
}
$www1 = strpos($www," ");
if (!$www1) {
   $replace_www = substr($www,0,strlen($www));
} else {
   $replace_www = substr($www,0,$www1);
}
echo $replace_www;
}
?> 

</body>
</html>
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Alebo môžeš vyskúšať toto (testoval som to v Konqeror a vo Firefox):

Kód: Vybrať všetko

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>MU</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"/>
<style>

</style>
<script type="text/javascript">
<!--
function find_links()
{
	var muRegex = new RegExp("http://www.megaupload\.com/[?]d=[a-z0-9]{8}", "gi");
	var taIn = document.getElementById("textIn");
	var taOut = document.getElementById("textOut");
	var match, s = "";
	while (match = muRegex.exec(taIn.value)) {
		s += match[0] + "\n";
	}
	taOut.value = s;
}
// -->
</script>
</head>
<body>
		<textarea id="textIn" name="textIn" rows="20" cols="80"></textarea><br />
		<input type="button" onclick="find_links()" value="Nájdi MU linky"><br />
		<textarea id="textOut" name="textOut" rows="20" cols="80"></textarea>
</body>
</html>
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Príspevok od používateľa lucas03 »

ok, dik chrono funguje genialne :)
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

nechcem zakladat novu temu, ale potrebujem pomoct s touto funkciou. skusal som vsetko mozne, ale stale nechapem syntax tejto funkcie ani zdaleka. chcel by som vybrat z textu pocet posluchacov.

Kód: Vybrať všetko

<B>1 of 25 listeners (1 unique)</b></b></td></tr><tr><td width=100 nowrap><font class=default>
z tohto zdrojaku by som potreboval vybrat to cislo 1 za zatvorkou pred slovom unique. skusal som vybrat toho viacej takto:

Kód: Vybrať všetko

preg_match("/listeners([^\"]+)\unique /i", $result, $matches);
   echo $matches[1];
a vyplulo mi to len chybu:

Kód: Vybrať všetko

Warning: preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 17
poradte pls

edit: zistil som, ze za backslashom nemoze byt slovo zacinajuce na u :( po velmi dlhom case ma trklo :( problem teda vyrieseny... funkciou substr som vytiahol co som potreboval :)
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Re: vyhladanie a vybratie niecoho v texte

Príspevok od používateľa lucas03 »

mohol by mi niekto este helfnut s regexom?
ten chronov kod som upravil (alebo ak mi to neupravil on v pm alebo na fore) na vypisovanie http linkov z textu. Konkretne

Kód: Vybrať všetko

<?php include"header.php"; ?>
http links<br>

<title>Vypis domeny - http</title><br>
<script type="text/javascript">
<!--
function find_link()
{
   var muRegex = new RegExp("(ht|f)tp(s?)\:\/\/[a-z0-9\-\.]+\.(com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2})(:[\d]{1,5})?[^ \t]*", "gi");
   var taIn = document.getElementById("textInput");
   var taOut = document.getElementById("textOutput");
   var match, s = "";
   while (match = muRegex.exec(taIn.value)) {
      s += match[0].replace(/\n/,"") + "\n";
   }
   taOut.value = s;
}
// -->
</script>
      <textarea id="textInput" name="textInput" rows="10" cols="150"></textarea><br />
      <input type="button" onClick="find_link()" value="vypis http domeny"><br />
      <textarea id="textOutput" name="textOutput" rows="10" cols="150"></textarea>
	  </center>
</body>
</html>
Pouzival som to na vypisovanie adries backlinkov zo stranky

Kód: Vybrať všetko

https://siteexplorer.search.yahoo.com/search;_ylt=A0oG7zesZMlM54EA1xvbl8kF?p=www.hojko.com&y=Explore+URL&fr=sfp
a teda na text ako

Kód: Vybrať všetko

 Na tom url dam ctr+a a ctrl+c a cely text teda parsnem do toho scriptu nech mi vypise len adresy odkazov.
kde chcem, aby mi to vypisalo

Kód: Vybrať všetko

www.hojko.com 
www.objav.sk
linkman1.blogspot.com
www.hardwar.sk
www.last.fm/user/Emgeton
info.pravdaoislamu.cz/index.php/2008/05/28/
www.hojko.com/lockerz-com-opis-faq-diskusia-t129273.html
...
Lenze ako ste si mohli vsimnut, yahoo odstranilo http:// z odkazov. Ked odstranim http z regexu tak mi to matchuje aj normalne slova. Skusal som aj ine regexi co som nasiel, no vzdy sa tam nasli aj slova.
Vedel by mi niekto poradit, aky regex tam hodit? Dakujem.
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: vyhladanie a vybratie niecoho v texte

Príspevok od používateľa __construct »

Neviem či som Ťa dobre pochopil :

Kód: Vybrať všetko

(?<=http://)([a-zA-Z0-9-_\.]+\.[a-zA-Z]{2,3}(/\S*)?)
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Re: vyhladanie a vybratie niecoho v texte

Príspevok od používateľa lucas03 »

Ked som nahradil ten regex, dal text :

Kód: Vybrať všetko

    * Yahoo!
    * My Yahoo!
    * Mail
    * Hello, Guest [ Sign In ]
    * Help

Yahoo! Site Explorer
Site Explorer

   1. Add to MySites
   2.
   3. My Sites
   4.
   5. Submit Your Site
   6. Preferences
   7. Blog
   8. Badge
   9. Web Service API
  10. Feedback

Results

   1. Pages (6,807)
   2. Inlinks (180,166,217)

   1. Show Inlinks:
   2.
      to:

   1. Result details:
   2.
   3.

   1. Submit webpage or Site Feed | Export first 1000 results to TSV

1. 	PHP: Hypertext Preprocessor

Authenticate this site to see more information

text/html www.php.net - 49k - cache
	Explore
2. 	Yahoo!

Authenticate this site to see more information

text/html www.yahoo.com - 152k
	
3. 	Flickr

Authenticate this site to see more information

text/html www.flickr.com - 9k
	Explore
4. 	Yahoo! Babel Fish

Authenticate this site to see more information

text/html babelfish.yahoo.com - 21k
	Explore
5. 	Yahoo! Search

Authenticate this site to see more information

text/html search.yahoo.com - 10k - cache
	Explore
6. 	MusicSkins.com, Your Favorite Artist, Your iPod

Authenticate this site to see more information

text/html www.music-skins.com - 72k - cache
Chcem aby mi vypisalo

Kód: Vybrať všetko

www.php.net
www.yahoo.com
www.flickr.com
babelfish.yahoo.com
search.yahoo.com
www.music-skins.com
Ale ten tvoj regex nematchne nic. Vrati prazdne.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: vyhladanie a vybratie niecoho v texte

Príspevok od používateľa BX »

No v takomto prípade by sa to dalo odžubať nejako takto, hm?

Kód: Vybrať všetko

"/text\/html (.+?) - \d+k/i"
V php mi to ide parádne

Kód: Vybrať všetko

$file = file_get_contents("file.txt");

if(preg_match_all("/text\/html (.+?) - \d+k/i", $file, $match))
{
 foreach($match[1] as $m) echo $m."<BR>";
}else
{
 echo "Ziadna zhoda!";
}
pričom do file.txt skopírujem obsah zo stránky

Kód: Vybrať všetko

https://siteexplorer.search.yahoo.com/search?p=www.hojko.com&fr=sfp&bwm=i
no a výstup:

Kód: Vybrať všetko

www.hojko.com
www.objav.sk
linkman1.blogspot.com
www.hardwar.sk
www.last.fm/user/Emgeton
info.pravdaoislamu.cz/index.php/2008/05/28/...
seth82.wordpress.com
mapainternetu.wordpress.com/2009/02/12/...
www.hojko.com/lockerz-com-opis-faq-diskusia-t129273.html
my.opera.com/hitmanius
www.hojko.com/ach-ti-rodicia-t77921-30.html
www.hojko.com/domena-na-awardspace-t53436.html
www.hojko.com/hranica-medzi-zivotom-s-smrtou-t99142.html
www.hojko.com/zabudnite-anglicky-za-pol-hodinu-t78828.html
hojko.com/ako-sosat-z-rapidu-a-inych-serverov-rychlo-a-be...
www.last.fm/user/filipito23
seth82.wordpress.com/2008/04
steamcommunity.com/groups/HojkoCom
rudhasweb.ic.cz
mihalciak.blog.sme.sk
szlovakiaitarskereso.lap.hu
www.surf.sk/vizitka-20616-annwin-forum
Prípadne v php by sa dalo brať rovno file_get_contents a parsovať automaticky z adresy(to by si ale vyžadovalo zas iný regexp). Neviem ale či to chceš teda v js, alebo ako.
lucas03
Darca
Darca
Používateľov profilový obrázok
Príspevky: 717
Registrovaný: 19 nov 2005, 14:43
Bydlisko: Brno

Re: vyhladanie a vybratie niecoho v texte

Príspevok od používateľa lucas03 »

No chcel som to v js, kedze mi to prislo lepsie ako serverove phpecko. Ale ak to funguje, tak mozem to tvoje prerobit na podobny princip ako funguje to js, teda namiesto file tam dat formular (ak mi v poho zoberie tie znaky), to potom ulozit do subor a nacitat alebo cez premennu.

No myslel som ze v tom js sa len zmeni regex a bude to slapat. Asi to nie je az take jednoduche, kazdopadne dik.
Napísať odpoveď