我正在设计一个正则表达式来匹配以下三种结构之一:
伪代码:
number.number.number.number e.g. 102.100.1.1
number.number.number e.g. 1.2.4
number.number. e.g. 1.2
到目前为止我的正则表达式看起来像这样:
\d{1,3}\\.\d{1,3}\\.\d{1,3}\\.\d{1,3}|\d{1,3}\\.\d{1,3}\\.\d{1,3}|\d{1,3}\\.\d{1,3}}
我正在运行以下查询来测试它:
select
regexp_extract('172.1.1.1', '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\d{1,3}\.\d{1,3}\.\d{1,3}|\d{1,3}\.\d{1,3}')
from
dual
Regex101 suggests this should work,as does RegExr。
然而,结果是空白的。这里有什么被忽视的,为什么这不起作用?
答案 0 :(得分:1)
这可能是因为你使用'\\。代替 '\。'。使用'\\。',它会搜索以下模式:“\。”而不是“。”。
试试这个:
render :partial => "delete_from_page"
编辑:
您还应该考虑在正则表达式中添加分隔符。 使用此正则表达式,如果在“1234.5678”上运行,它将获得“234.567”。 这很容易解决:
\d{1,3}(\.\d{1,3}){1,3}
然后只从输出中获取第二组