我正在使用以下模式,
public static final String DEGREE_SIGN = "°";
public static final Pattern DMS = Pattern.compile("^\\s*(-?\\d{1,3})\\s*" + DEGREE_SIGN
+ "+\\s*(\\d{1,2})\\s*\'"
+ "+\\s*(\\d{1,2}\\.+?\\d{0,6})\\s*\"+$");
尝试将字符串作为"38° 53' 23\""
Matcher m = DMS.matcher(latitudeDMSString);
if (m.find())
{
}
然而它失败了。在调试中我可以看到正则表达式为
java.util.regex.Matcher[pattern=^\s*(-?\d{1,3})\s*°+\s*(\d{1,2})\s*'+\s*(\d{1,2}\.+?\d{0,6})\s*"+$ region=0,11 lastmatch=]
似乎正在删除\
前面的'
和"
如何解决此问题
public static final Pattern DMS = Pattern.compile(“^ \ S *( - ?\ d {1,3})\ S *°+ \ S *(\ d {1,2})\ S * \'+ \ S *(\ d { ??1,2} \ \ d {1,4})\ S * \ “+ $”);
答案 0 :(得分:1)
答案 1 :(得分:0)
在java中,以下是转义字符: -
因此,为了在java中的字符串中使用\'和\“,我们需要分别使用\\\'和\\\”来转义这些字符。