谁能帮忙。
我试图找出一些数据的正则表达式格式,但正为它的复杂性而苦苦挣扎。

我想以格式设置某些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]$");

10-06 13:47
查看更多