2013-08-02 30 views
0

在我的Android應用程序,我必須做出一個包含地址的編輯文本的控制,Android的正則表達式匹配的地址

現在我的控制是:

Indirizzo.toString().matches("[\\sa-zA-Z0-9]*") 

但我也必須添加其它字符控制,

如:\ . n ° ,

我怎樣才能改變正則表達式?

回答

2

你可能會考慮使用類似這樣的東西:[\sa-zA-Z0-9\\\.n°/]*

這就是說,那個特定的正則表達式也將匹配一個空的字段。如果你不想要這個,只需用+(匹配一個或多個重複)替換*(匹配0或更多的重複)。

\是一個特殊字符,它需要被轉義,因此額外的\它的前面。 .也是一個特殊字符,也需要逃脫。

所以,在Java中,你需要使用像這樣:[\\sa-zA-Z0-9\\\\\.n°/]*

+0

非常感謝你, 一個「最後一件事: 如果我想插入字符/ 例如:通過艾米利亞,N°3/2 – Garumbo

+0

@Garumbo:我已經更新了我的答案:) – npinti

+0

謝謝又是你! :) – Garumbo

0

可以使正則表達式接受使用下列字符類所有的ASCII字符:

[\x00-\x7F] 

或者,如果您倒是想只匹配那些特定的字符,也就是\ . n ° ,,只需將它們添加到字符類:

另外,您應該使用+而不是*來消除零字符匹配。