none
如何得到文字符合Regular Expression的布林 RRS feed

  • 問題

  • 請教大家, 應該如何得到Incode是否完全符合titleValue的Regex的布林值? 為什麼符合與不符合titleValue都是出現"123"?求解, 謝謝!

      Dim Incode As String = TextBox2.Text

    Dim titleValue As New System.Text.RegularExpressions.Regex("(T|t)itle/(?:Color=|color=|Color = |color = )")
                                Dim titlematches As MatchCollection = titleValue.Matches(Incode)
                                If itemcode.Success = True Then
                                   For Each itemcode As Match In titleValuematches
                                        If itemcode.Success = True Then
      RichTextBox1.AppenText("123")
    ElseIf itemcodeTitleValue.Success = False Then

    RichTextBox1.AppenText("456")

    Exit For
       End If

                                                                                                                            
    2014年6月27日 上午 06:31

解答

  • 你要的是這樣嗎?

            Dim r As New System.Text.RegularExpressions.Regex("Wh(ale|at|ere|en)")
            Dim partNumber As String = TextBox1.Text
            If r.IsMatch(partNumber) = True Then
                Label1.Text = "Yes: What|hale|here"
            Else
                Label1.Text = "Not: What|hale|here"
            End If


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度


    • 已編輯 Alex_Lee 2014年6月28日 上午 08:07
    • 已標示為解答 yu yin man 2014年6月28日 上午 08:44
    2014年6月28日 上午 08:06

所有回覆

  • 你要判斷的文字字串片段呢?

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2014年6月27日 下午 12:00
  • 程式會過嗎?

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年6月27日 下午 12:08
  • 我想判斷句子例如title不符合以上Regex句子就回報"not title",然後判斷是否有/,不符合以上Regex就回報"please put /",符合的話就判斷是否有color=或Color=,最後符合所有就回報123,我想句子有更多組合,但判斷他們需要用布林值,還是有其他方法?
    • 已編輯 yu yin man 2014年6月27日 下午 02:55
    2014年6月27日 下午 02:45
  • 程式會過嗎?

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度


    不明白您的意思
    2014年6月27日 下午 02:56

  • 少了一個 End If

    在第一個 if 判斷式 使用的itemCode  沒有定義

    在 for each 的 titleValuematches 沒有定義

    建置專案 不會過吧


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年6月27日 下午 03:50
  • 題外話, 如果要加上程式碼, 可以使用論壇的"插入程式碼區塊" 功能, 會比較好看,  如下圖:


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年6月27日 下午 04:39
    版主
  • 要取 bool 的話,要用 Regex.IsMatch 方法 不是用 Matches 哦。

    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站

    個人

    2014年6月27日 下午 09:53
  • 要取 bool 的話,要用 Regex.IsMatch 方法 不是用 Matches 哦。

    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站

    個人

    我想請問Regex中的(?:Pattern)應該怎麼用? 為什麼當我輸入Whale的時候還是輸出False值?

     Dim r As New System.Text.RegularExpressions.Regex("Wh(?:ale|at|ere|en)")
            Dim matches As String = TextBox1.Text
            For Each partNumber As String In matches
                If r.IsMatch(partNumber) = True Then
                    Label1.Text = "Yes: What|hale|here"
                Else
                    Label1.Text = "Not: What|hale|here"
                End If
            Next


    • 已編輯 yu yin man 2014年6月28日 上午 06:44
    2014年6月28日 上午 06:41
  • 你要的是這樣嗎?

            Dim r As New System.Text.RegularExpressions.Regex("Wh(ale|at|ere|en)")
            Dim partNumber As String = TextBox1.Text
            If r.IsMatch(partNumber) = True Then
                Label1.Text = "Yes: What|hale|here"
            Else
                Label1.Text = "Not: What|hale|here"
            End If


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度


    • 已編輯 Alex_Lee 2014年6月28日 上午 08:07
    • 已標示為解答 yu yin man 2014年6月28日 上午 08:44
    2014年6月28日 上午 08:06
  • 抱歉 應該是 類似這樣

            Dim r As New System.Text.RegularExpressions.Regex("Wh(?:ale|at|ere|en)")
            Dim partNumber As String = TextBox1.Text
            For Each match As Match In r.Matches(partNumber)
                Label1.Text = Label1.Text & match.Value
            Next


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年6月28日 上午 08:17
  • 是喔!謝謝大家!那為什麼不用For Each 就可以?
    2014年6月28日 上午 08:43
  • 應該要看你使用情境
    如果只是單一比對
    只要用 IsMatch就  就不需要用 for each  xx as Match In xxx.Matches 了


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年6月28日 上午 08:48
  • 應該要看你使用情境
    如果只是單一比對
    只要用 IsMatch就  就不需要用 for each  xx as Match In xxx.Matches 了


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    如果需要多重組合是不是一樣用If Then Else 作單一比對?
    2014年6月28日 上午 08:53
  • 你所謂得多重組合是?

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年6月28日 上午 09:46
  • 你所謂得多重組合是?

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    例如好像VB2010一樣, 當輸入TextBox1.就指定一系列適當的屬性
    2014年7月1日 上午 08:12