Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Регулярные выражения Добавлено: 15.04.06 23:45  

Автор вопроса:  AlexDerS
Как сделать из:
"C:\Program Files\Internet Explorer\iexplore.exe" -nohome
вот это:
C:\Program Files\Internet Explorer\iexplore.exe

Если делать вот так:
Regex.Match(My.Computer.Registry.GetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command\", Nothing, Nothing), """(.*)""").Value

то всёравно получается:
"C:\Program Files\Internet Explorer\iexplore.exe"

Как вооюще убрать кавычки?

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 16.04.06 01:14
Imports System.Text.RegularExpressions

Module Module1

    Sub Main()
        Dim orig As String
        Dim orig1 As String
        orig = """http://www.microsoft.com/net"""
        Console.WriteLine(orig)
        orig1 = Regex.Replace(orig, ";(" & """;)+", "";) '(";)+
        Console.WriteLine(orig1)
    End Sub

End Module

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 16.04.06 04:53
(?<=\";).*(?=\";)

Ответить

Номер ответа: 3
Автор ответа:
 BUG(O)R



ICQ: 827887 

Вопросов: 13
Ответов: 142
 Web-сайт: hunger.ru
 Профиль | | #3
Добавлено: 16.04.06 10:23
Sharp, ретроспективная проверка (?<=\";) в ВБ не работает, поэтому так не поканает.

Попробуй так:
[^"](.*)(?=";)

Ответить

Номер ответа: 4
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #4 Добавлено: 16.04.06 10:50
(?<=\";).*(?=\";)

работает. покатит. вот так:
Regex.Match(My.Computer.Registry.GetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command\", Nothing, Nothing), ";(?<=\"";).*(?=\"";)";).Value

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 16.04.06 17:32
В .NET работает, я проверял с помощью Regexp Builder, а он на .NET написан

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 16.04.06 23:45

Может проше

Replace (str, chr$(34),"";) ?

Ответить

Номер ответа: 7
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #7 Добавлено: 16.04.06 23:48
Можно просто убрать по символу слева и справа. Какие тут проблемы?

Ответить

Номер ответа: 8
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #8 Добавлено: 17.04.06 00:24
Какие тут проблемы?

Проблема в том, что строка может выглядеть вот так:
"C:\Program Files\Internet Explorer\iexplore.exe" -nohome
и просто убрать по символу с каждой стороны - не прокатит.

Ну а самый коротки и правильныйвариант, я думаю, это:
Regex.Match(My.Computer.Registry.GetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command\", Nothing, Nothing), ";(?<=\"";).*(?=\"";)";).Value

-просто, и делает то, что нужно! :)

Ответить

Номер ответа: 9
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #9
Добавлено: 17.04.06 17:47
-просто, и делает то, что нужно! :)

Гораздо проще и естественней то, что предложил Hacker.

Ответить

Номер ответа: 10
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #10 Добавлено: 17.04.06 18:22
Гораздо проще и естественней то, что предложил Hacker.


Это проще, если строка вот такая:
"C:\Program Files\Internet Explorer\iexplore.exe"

А если она изначально была такой:
"C:\Program Files\Internet Explorer\iexplore.exe" -nohome

то просто удалить из неё кавычки - ничего не даст!
А сначала отсекать всё лишнее, а потом ещё и кавычки по бокам удалять, то это...
и главное зачем, если всё за одну итерацию сделать можно...

Ответить

Номер ответа: 11
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #11 Добавлено: 17.04.06 18:44
Ну, по крайней мере в шестерке прокатывало такое

Option Explicit
Private Sub Form_Load()
Dim MyStr As String
MyStr = """C:\Program Files\Internet Explorer\iexplore.exe"" - nohome"
MsgBox MyStr
MsgBox Split(MyStr, Chr$(34))(1)
End Sub

Под .NET не приходилось...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам