Lộc Gaming-stream Ответов: 1

У меня есть проблема со ссылкой на необщий член, требующий ссылки на объект


У меня есть проблема со ссылкой на необщий член, требующий ссылки на объект : "Regex" в строке
Test = Regex.Match(data, RegexOptions.IgnoreCase).Success


Что я уже пробовал:

Imports System.IO
Imports System.Windows
Imports System.Windows.Forms
Imports System.Text.RegularExpressions
Imports System.Net

Public Class Tool

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        KeyPreview = True
        Dim wc As New WebClient
        Dim tfile As String = "http://tudongvb.000webhostapp.com/HWID.txt"
        Dim Sr As New StreamReader(wc.OpenRead(tfile))
        Dim data As String = Sr.ReadToEnd
        Dim Test As String = ""
        Test = Regex.Match(data, RegexOptions.IgnoreCase).Success
        If TextBox7.Text = Test Then
            MessageBox.Show("LocDepTrai")
        End If
    End Sub

1 Ответов

Рейтинг:
8

OriginalGriff

Подумайте об этом:

Dim Test As String = ""
Test = Regex.Match(data, RegexOptions.IgnoreCase).Success


1) Success это логическое значение: оно возвращает True или False, указывая, сработало ли совпадение. Зачем присваивать это строке?
2) чему должно соответствовать регулярное выражение? Вы предоставили данные для проверки, входные данные в data - но нет никакого регулярного выражения, чтобы искать его!
3) с Test это строка, она будет содержать "истину" или "ложь" - в чем я сомневаюсь TextBox7.Text делает...

Существует общий метод регулярных выражений, который будет делать то, что вы хотите: Регулярное выражение.Метод Соответствия (System.Text.RegularExpressions) | Майкрософт Документы[^] но это требует другого использования и другого кода:
Dim Test as Match = Regex.Match(data, "your regex string here", RegexOptions.IgnoreCase)
If Test.Success Then
   If TextBox7.Text = Test.Value Then
       MessageBox.Show("LocDepTrai")
   End If
End If
И, пожалуйста, сделайте себе одолжение и перестаньте использовать имена Visual Studio по умолчанию для всего - вы можете помнить, что "TextBox8" - это номер мобильного телефона сегодня, но когда вам придется изменить его через три недели, вы это сделаете? Используйте описательные имена - например, "tbMobileNo", - и ваш код станет легче читать, более самодокументируемым, легче поддерживать - и на удивление быстрее кодировать, потому что Intellisense может добраться до "tbMobile" за три нажатия клавиш, где "TextBox8" занимает размышление и 8 нажатий клавиш...