谁能帮忙。 我正在尝试找出一些数据的 Regex 格式,但我正在为它的复杂性而苦苦挣扎。
我想以格式格式化一些 Latitude EditText
“N5123.5”
第一个数字必须是 N 或 S(或 n 或 s) 必须正好有 4 个数字,正好有 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]$");
关于java - 正则表达式格式的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149466/