我正在尝试将以下两个String
对象与正则表达式匹配。我正在分组并从第一个String
中拉出值3.00,4.00,100.00;它工作正常。但是,我有很多String
个对象,并不是全部包含第三个组,所以我想将该组保留为可选。因此,我为该组添加了?
以使其成为可选项。然而它并没有什么区别,没有第三组部分的任何String
都与我的正则表达式不匹配。
如何让第三组可选?关于我的正则表达式是否可以更好地格式化,是否有任何建议?谢谢!
正则表达式
cost{"([0-9]+\.[0-9]+)[0-9"{]},+[a-zA-Z0-9]+{"+([0-9]+\.[0-9]+)[0-9A-Za-z"},{[\]\._-]+:price{"([0-9]+\.[0-9]+)?
匹配的字符串1,因为它具有第三组值
cost{"3.00{},asdjdfhjkf23hawoutcome{"4.00"},79234gh3k2bdfsfgs2323g23jkg23{[]._-,bonus:price{"100.00"}jksdfjksdf222sdcfszfSDAWFD;
字符串2不匹配,因为它没有第三组值
cost{"5.00{},asdjdfhjkf23hawoutcome{"36.00"},79234gh3k2bdfsfgs2323g23jkg23{[]._-,jksdfjksdf222sdcfszfSDAWFD;
答案 0 :(得分:0)
您必须将第3组的所有包装在括号中才能使其正常工作。我不确定你的意思是什么,但只是继续他们所包含的内容,这就是你的正则表达式应该如何看待:
tr.has-border-top>td {
border-top: 1px solid black
}
注意最后一点的cost{"([0-9]+\.[0-9]+)[0-9"{]},+[a-zA-Z0-9]+{"+([0-9]+\.[0-9]+)[0-9A-Za-z"},{[\]\._-]+(:price{"([0-9]+\.[0-9]+))?
- 这就是正则表达式将整个事物视为一个单元的原因。否则,它只会查看最后一个逻辑部分并查看最后一个()
,而不是所有要忽略的部分。