谁能帮忙。
我试图找出一些数据的正则表达式格式,但正为它的复杂性而苦苦挣扎。
我想以格式设置某些Latitude EditText的格式
“ N5123.5”
第一位数字必须是N或S(或n或s)
然后必须有正好4个数字,正好1个句号
然后精确到1位数字。因此,长度必须恰好是7个字符。
尽管我相信它是
static final Pattern LAT_PATTERN = Pattern.compile("^[NSns]{1}[0-9]{4}[.]{1}[0-9]{1}");
但是,这不起作用。
那里的任何专家都可以帮助您。
最佳答案
这些{1}
可以删除(尽管它们不影响比赛)。但是,您也需要将正则表达式锚定在字符串的末尾,或者比7个字符长的字符串也可以(部分)匹配:
Pattern.compile("^[NSns][0-9]{4}[.][0-9]$");
通常,点写为
\.
,而不是[.]
,但都可以,特别是在Java中,需要使用双反斜杠:Pattern.compile("^[NSns][0-9]{4}\\.[0-9]$");