請不要以此爲光顧,但我認爲你應該通過測試驅動的開發實踐。這將幫助您爲您的問題定義規格。
例如,在你的國家,你的問題的方式,這可能是一個答案:
value="\w+://\w+\?(list|detail)"
或階:
scala> val r = """value="\w+://\w+\?(list|detail)"""".r
r: scala.util.matching.Regex = value="\w+://\w+\?(list|detail)"
注意,這些比賽:
value="key1://string1?list"
value="key1://string1?detail"
但這些不匹配:
value="my-key://my-string?list" // hint: it's the "-". \w does not match it
value="mykey://mystring?test" // hint: list or details are matched but "test" is not
可能有很多其他的角落案例(你想區分大小寫還是不是?在等號周圍是否有空格,如value =「?」 這就是爲什麼最好用「這應該起作用,應該被拒絕」這個術語來定義問題。它會幫助你進一步避免細微的問題在你的程序。
定義「喜歡」。如果正則表達式只接受你提供的兩個字符串,但拒絕任何其他的嗎?還有你嘗試過什麼? – 2013-04-08 10:53:31
你能還包括字符串的例子,你想在正則表達式來拒絕? – Jerry 2013-04-08 10:53:41
你想用它做什麼?你只是想驗證字符串/模式或重用某個匹配組? – Simon 2013-04-08 10:55:31