2014-11-04 76 views
0

我需要幫助寫一個正則表達式爲以下字符串:進入必須用逗號+空格如何使用正則表達式檢查字母數字逗號分隔值?

  • 分開

    1. 範圍可以採取字母數字字符。

    2. 接受 - 在兩者之間,但不能結束 - 或者,

    以下是有效的字符串:

    1. ABC001, 11236, IU765, OI001-OI007, PO98, 98700
    2. VA009, VA778
    3. YU987
    4. 889022

    以下是無效的字符串:

    1. ,,,&*(&
    2. AB998,,,, AB998
    3. AB005-AB002,-
  • +0

    ** 1在線試用* *根據規則#1,有效字符串#2的有效性如何? ** 2 **您正在使用哪種語言/正則表達式引擎? ** 3 **規則#2將會非常複雜,只有正則表達式,您能否在解析之後以編程方式檢查該規則? – Biffen 2014-11-04 11:12:44

    +0

    我現在改變了這個問題。 – 2014-11-04 11:16:33

    +1

    我會用''分割字符串,然後檢查所有的位是否有效字母數字 – yoavmatchulsky 2014-11-04 11:18:28

    回答

    2

    請嘗試以下的正則表達式

    ^[A-Z0-9]+((,\s|-)[A-Z0-9]+)*[A-Z0-9]+$ 
    

    這將檢查以下內容:

    • 開始以字母或數字
    • 檢查爲,-超過1模式
    • 用字母結束或數字

    您可以在Regexr.com

    1

    一個正則表達式按照你的規則是^[a-zA-Z0-9-]*[a-zA-Z0-9]+(?:, [a-zA-Z0-9-]*[a-zA-Z0-9]+)*$

    規則意味着:

    • 從一開始^
    • 一個或更多的有效字符(雖然沒有在破折號結束)[a-zA-Z0-9-]*[a-zA-Z0-9]+
    • 其次依次通過任何數目的
      • 逗號空間
      • 一個或多個有效字符
      • - >(?:, [a-zA-Z0-9-]*[a-zA-Z0-9]+)*
    • ,然後結束$

    EDITED的規則alphanum或破折號
    AGAIN編輯。當規則改變,再次

    +0

    請再次檢查問題。對不便帶來的不便 – 2014-11-04 11:44:24

    +0

    @Priscy - 在你提出問題之前,請嘗試着解決你想問的問題......因爲規則已經改變而下調答案,這對我來說似乎有點不禮貌 – Captain 2014-11-04 12:04:05

    相關問題