我有一个匹配正则表达式的Bash脚本文件。
我的正则表达式脚本文件:
if [[ "$image" =~ [0-9]+(.[0-9]+){3}-[0-9]+$ ]]; then
我需要通过只匹配0.0.0.0-0000
的案例
这些是我的投入和结果。
pass:0.0.0.0-0000
pass:0.0.0.0.0.0-0000<lt;不需要的匹配
编号:0.0.0.0字
编号:0.0.0.0
正如我在上面标记的,0.0.0.0.0.0-0000
与我的正则表达式匹配。
我的问题是如何修改regex以仅匹配模式0.0.0.0-0000
?
假设您正在尝试匹配某种IP地址,如String,我会想出这个regex。
^(d+.?){4}-d+
Regex Demo
注意第一捕获组(d+.?)
中的d+
,其将匹配.
之前的任何数字。如果唯一的起始模式是0.0.0.0
,则可以删除此处的+
标记以仅匹配一个数字字符。
说明:
^
-捕获字符串的开始
(d+.?){4}
-在捕获0.0.0.0
的一行中捕获以可选.
字符结尾的数字4次
-d+
-捕获-
字符和捕获-0000
的一行中的数字序列
此问题已解决。
第四只鸟我错过了锚。若要澄清起点和终点,它应介于"^"one_answers"$"之间。
你可以参考答案
if [[ "$image" =~ ^[0-9]+(.[0-9]+){3}-[0-9]+$ ]]; @The fourth bird Jul 11 at 8:43
感谢您的重播XD