Что нового

убрать из строки лишнее

komorov74

Новичок
Сообщения
81
Репутация
0
Добрейшего вечера.

Есть строчка
ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi

меня интересует как вытащить из неё все что после первого одиночного слеша
/films2/the_thing/the_thing-solaris.giga.su.avi

не могу разобраться мешают два первых слеша //

начало строки может быть любое
Http://mail.ru/films2/the_thing/the_thing-solaris.giga.su.avi
конец тоже любой

меня конкретно интересует как из строчки Ляля//dd/вот что я хочу/хочу и до конца.avi

вытащить:dd/вот что я хочу/хочу и до конца.avi

секций до самого файла не известно. Интересует информация после первого / и до конца



Помогите пожалуйста. :beer:
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Код:
$Data = "ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi"
$Data = StringRegExpReplace($Data, "(.*)/films2/(.*)", "films2/$2")

MsgBox(0, 0, $Data)



Добавлено:
Сообщение автоматически объединено:

Чуть -чуть не понял что именно надо вытащить:

Код:
$Data = "ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi"
$Data = StringRegExpReplace($Data, "(.*)://(.*)", "$2")

MsgBox(0, 0, $Data)
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
komorov74 [?]
меня конкретно интересует как из строчки Ляля//dd/вот что я хочу/хочу и до конца.avi
вытащить:dd/вот что я хочу/хочу и до конца.avi


Так ? :
Код:
$sText = "Ляля//dd/вот что я хочу/хочу и до конца.avi"

;$sPatern = "^.+?[^/]//"
$sPatern = "^.+?//"

$sResult = StringRegExpReplace( $sText, $sPatern, '' )
MsgBox(4096, ' Test Result', $sResult)



Добавлено:
Сообщение автоматически объединено:

Или так :?
Код:
$sText = "Http://mail.ru/films2/the_thing/the_thing-solaris.giga.su.avii"

$sPatern = "^.+//.+?/"
$sResult = StringRegExpReplace( $sText, $sPatern, '' )
MsgBox(4096, ' Test Result', $sResult)

Ты бы определился что нужно ?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
komorov74,
Или так?
Код:
$sText = 'ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi'

$sResult = StringRegExpReplace($sText, '^.*//.*?/', '/')
MsgBox(64, @extended, $sResult)
 
Автор
K

komorov74

Новичок
Сообщения
81
Репутация
0
Мужики большое спасибо!!!!! Но я пошел другим методом!!!! иначе бы я Вас замонал!!!!
Код:
; весь 1с на DVD www.gagarin74.narod2.ru
$bak = ClipGet()
TCPStartup()
$sStr = $bak
$s = $bak
$d=$bak
$p = '\//(.*?)\/.*'; фильтр то что между //______/
$p1 = '\//.+' ;фильтр то что после /
$a = StringRegExp($s, $p, 1)
$b=StringRegExp($d, $p1, 1)
$s=$a[0] ; само значение //_____/
$s1=$b[0] ; само значение /________
ConsoleWrite($s & @CRLF)
ConsoleWrite($s1 & @CRLF)

$f=TCPNameToIP($s) ; ip adres
ConsoleWrite( $f & @CRLF)
$kol=StringLen ( $s );количество символов значения //______/
ConsoleWrite($kol & @CRLF)
$kol1=StringLen ( $s1 );количество символов значения //______ до конца
ConsoleWrite($kol1 & @CRLF)
$bak1=StringLen ( $bak ); количество всей ссылки
ConsoleWrite($bak1 & @CRLF)
$x1=$kol1-$kol ; получаем конец нашей ссылки
ConsoleWrite($x1 & @CRLF)
$a=StringTrimLeft( $s1, $kol+3) 
ConsoleWrite($a & @CRLF)
$end='media_url = smb://'&'quest@'& $f &'/' & $a 
ConsoleWrite($end & @CRLF)
;FileOpen ( "//dune/silver/go/dune_folder.txt", 1 )
DirCreate("//dune/silver/go")

$ee=FileOpen ( "//dune/silver/go/dune_folder.txt", 2 )
FileWrite ( "//dune/silver/go/dune_folder.txt",$end ); запись что все хорошо
FileClose($ee)
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Зачем лишние телодвижения ?
Может так ?:
Код:
$sStr = 'ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi'
TCPStartup()
$sURL=StringRegExpReplace( $sStr, "^.+//(.+?)/.*", '\1' )
ConsoleWrite( "$sURL = " & $sURL & @CRLF)
$sIP_Adress=TCPNameToIP($sURL)
ConsoleWrite( "$sIP_Adress = " & $sIP_Adress & @CRLF)
$sResult = StringRegExpReplace( $sStr, "^.+//.+?/", '' )					
$end='media_url = smb://quest@'& $sIP_Adress &'/' & $sResult	
ConsoleWrite("$end = " & $end & @CRLF)




Добавлено:
Сообщение автоматически объединено:

И чуть проще?
Код:
$sStr = 'ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi'
TCPStartup()
$sURL=StringRegExpReplace( $sStr, "^.+//(.+?)/.*", '\1' )
ConsoleWrite( "$sURL = " & $sURL & @CRLF)
$sIP_Adress=TCPNameToIP($sURL) ; ip adres
ConsoleWrite( "$sIP_Adress = " & $sIP_Adress & @CRLF)			
$sResult=StringRegExpReplace( $sStr, '^.+//.+?/(.+)', "media_url = smb://quest@" & $sIP_Adress & "/\1" )
ConsoleWrite("$sResult = " & $sResult & @CRLF)



Добавлено:
Сообщение автоматически объединено:

И еще проще :
Код:
$sStr = 'ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi'
TCPStartup()
$aStr=StringRegExp($sStr, '^.+//(.+?)(/.*)$', 3)
$sURL=$aStr[0]
$sIP_Adress=TCPNameToIP($sURL) 
$sResult="media_url = smb://quest@" & $sIP_Adress & $aStr[1]
ConsoleWrite("$sResult = " & $sResult & @CRLF)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
komorov74 [?]
меня интересует как вытащить из неё все что после первого одиночного слеша
Вот так у меня всё нормально вырезает.
Код:
;~ $sText = 'ftp://solaris.giga.su/films2/the_thing/the_thing-solaris.giga.su.avi'
$sText = 'http://mail.ru/films2/the_thing/the_thing-solaris.giga.su.avi'
ConsoleWrite(StringRegExpReplace($sText, '.*:\/\/.*?\/','$1'))
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Garrett [?]
Вот так у меня всё нормально вырезает.
Если в твоем :
Код:
ConsoleWrite(StringRegExpReplace($sText, '.*:\/\/.*?\/','$1'))

убрать совсем ненужные "\" , ':' и '$1', то останется банальное :
Код:
StringRegExpReplace($sText, '.*//.*?/', '')

Но судя по всему автору этого недостаточно.
Похоже ему надо еще и сам фрагмент до первого "/" (URL) ;) :smile:
Т.е. :
Код:
$aFragment=StringRegExp( $sText, '^.*?//(.*?)(/.+$)', 3 )
 
Автор
K

komorov74

Новичок
Сообщения
81
Репутация
0
ВСЕ, ВСЕМ СПАСИБО!!!!!!!!!!!!!!!!!!! я надеюсь что многим пригодятся оставленные тут решения!!!!
 
Верх