我有以下字符串。它是度数,分钟和秒格式的LatLongs, 并可按如下方式输入:
Option1: 25º 23" 40.6' or
Option2: 25º 23'' 40.6' or
Option3: 25 23 40.6
有一个regx我想匹配两个字符串,对我来说问题是匹配“(双引号)和''(两个单引号)。
到目前为止,我有以下内容。
^[+|-]?[0-9]{1,2}[\º| ][ ]?[0-9]{1,2}[\"|'{2}| ]
我正在lunix(Ubuntu)的终端上构建和测试regx。
从输出到终端,它匹配“(双引号)但只有一个''(两个单引号) )。
如何在一个表达式中更改regx以匹配“(双引号)和”(两个单引号)?
提前致谢。
答案 0 :(得分:1)
查看此模式:
([+-]?\d{1,2}(?:\.\d{1,2})?.)\s*(\d{1,2}(?:\.\d{1,2})?[\S]*)\s*(\d{1,2}(?:\.\d{1,2})?'?)
它独立于任何特殊字符,包括支持最多2位数字,以及您的问题的解决方案。
答案 1 :(得分:0)
你的正则表达式有问题。例如,[\"|'{2}| ]
匹配单个"
,|
,'
,{
,2
,}
或{{1} }}。请尝试以下方法:
<强>解释强>
^([+-]?\d+)º? ?\b(\d+)\b(?:''|\")? ?([\d.]+)'?$
答案 2 :(得分:0)
我认为您真正希望使用上面的Regex是
^[+|-]?[0-9]{1,2}º? ?[0-9]{1,2}(\"|'{2})? ?[0-9]{1,2}\.[0-9]'?
虽然这也匹配奇怪的事情,如
25 23'' 40.6
您的正则表达式使用自定义字符类([
和]
中的部分),它们只能匹配一个字符。您可以按(
和)
将多个字符组合在一起,并使用?
将这些组设为可选字段。