安卓通过Java中的正则表达式模式验证输入选项
我正在使用regex开发Android Java应用程序。 我想验证一句话,比如: “我想要一个xxx比萨饼”,使用类似“我想要(a型| B型| C型)比萨饼”的模式
举个例子: 我将模式设置为“我想要(意大利腊肠|蘑菇|奶酪)披萨” 用户输入:“我想要一个意大利腊肠披萨” 句子匹配正确,第(1)组等于“萨拉米”。 但如果用户输入:“我想要一个随想披萨”,整个匹配器就会失败,而不仅仅是组(1)。 正则表达式是否可以被修改,以避免匹配器在整个句子中失败,并使其仅在组(1)位置得到一个空组
希望我的解释清楚。。。。提前谢谢
# 1 楼答案
要么接受整个字符串,要么拒绝整个字符串
如果你想要一个空组,如果披萨的类型不匹配
salami|mushrooms|cheese
,你可以这样做(?: ...)
是一个非捕获组。并且|(?:.*)
将是一个“匹配任何内容转义图案填充”,以允许接受整个字符串(但仍使group(1)
为null)演示:
输出: