我怎么能有一个匹配字符串的正则表达式:
value="key://string?list"
或
value="key://string?detail"
我尝试过类似的事情:
new Regex("value=\\w.")
String是一个字符串值,不是常量值String。 一个前。会是
value="samplekey://samplestring?list"
答案 0 :(得分:1)
使用此正则表达式value="key://string\?\w+"
编辑:
value="\w+://\w+?\?\w+"
答案 1 :(得分:1)
请不要把它作为光顾,但我认为你应该练习测试驱动的开发。它可以帮助您定义问题的规范。
例如,在您陈述问题的方式中,这可能是一个答案:
value="\w+://\w+\?(list|detail)"
或在scala中:
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
可能还有很多其他极端情况(你是否想要区分大小写的匹配?等号周围是否有空格,如值=“?) 这就是为什么最好用“这应该工作,这应该被拒绝”来定义你的问题。它将帮助您避免程序中的细微问题。