我想正則表達式來有效的輸入匹配到Tags
輸入字段具有以下屬性:如何改善此正則表達式?
- 1-5標籤
- 每個標籤長
- 有效的標籤字符是1-30個字符[ A-ZA-Z0-9-]
- 輸入和標籤可以通過空白
的任何量例如被分離:
有效期:標籤1標籤2標籤3,用破折號TAG4與 - 更多的破折號tAaG5與 - 混合大小寫
這裏是我迄今爲止 - 它似乎工作,但我很感興趣怎麼可以簡化或者如果它有任何重大缺陷:
\s*[a-zA-Z0-9-]{1,30}(\s+[a-zA-Z0-9-]{1,30}){0,4}\s*
// that is:
\s* // match all beginning whitespace
[a-zA-Z0-9-]{1,30} // match the first tag
(\s+[a-zA-Z0-9-]{1,30}){0,4} // match all subsequent tags
\s* // match all ending whitespace
預處理的輸入,使空白問題容易不是一個選項(如修剪或添加空間)。
如果它很重要,這將用於JavaScript。任何建議,將不勝感激,謝謝!
這是一個整潔的網站 - 感謝參考 – 2010-03-24 22:56:53
@Michael - 不客氣。並檢查我的第二次嘗試在這裏。它更簡單,我認爲表現與你的第一個表達大致相同。 – 2010-03-24 23:12:37
@Steve:我感謝你的額外努力 - 不幸的是,最新的正則表達式並不限制在30個字符/每個 - 即。它匹配一個40char標籤 – 2010-03-24 23:15:26