应用中的正则表达式返回空字符串,即使它与组规范匹配

时间:2018-10-11 09:06:27

标签: android regex

我有EditText,可以在其中写入街道名称和街道编号。但是通过应用程序设计,我必须将这些参数写入单个editText。

所以我创建了正则表达式,它将从我的EditText获取街道名称和街道编号。我正在将StreetName和StreetNumber作为不同的参数发送到服务器上的HTTPRequest。

val matcher = Pattern.compile("^([\\p{L} ]+)([0-9\\/]+)([\\p{L}0-9]+)").matcher(streetName)
        var streetNameOnly = ""
        var streetNumOnly = ""

        if (matcher.find()) {
            streetNameOnly = matcher.group(1).trim()
            streetNumOnly = matcher.group(2).trim() + matcher.group(3).trim()
        }

第一组应与仅字母和空格"North Street")匹配。 第二组应与街道编号斜杠"25""120/")匹配 第三组应匹配第二个数字字母(在反斜杠之后)->("12584""145C"

因此最终的街道名称可以是"North Street 120/12584"-> "North Street"-第一个参数和"120/12584" 第二个参数。

这可以按预期工作,但是如果用户仅键入"North Street""North",则组1中的匹配者将找到空字符串

0 个答案:

没有答案