Regex 小维姆正则表达式
我有一组字符串如下所示:Regex 小维姆正则表达式,regex,vim,Regex,Vim,我有一组字符串如下所示:”../DisplayPhotod6f6.jpg?t=before&;tn=1&;id=130',我想去掉问号后面的所有内容,看起来像'../DisplayPhotod6f6.jpg' s/\(.\.\.\/DisplayPhoto.\{4,}\.jpg\)*'/\1'/g 这个正则表达式捕获了一些但不是所有的事件,你知道为什么吗?\.{4,}正在尝试匹配4个或更多的字符。看起来您想要的是“匹配任何字符的4个或更多”(\{4,}),但“匹配4个或更多非字符”
”../DisplayPhotod6f6.jpg?t=before&;tn=1&;id=130'
,我想去掉问号后面的所有内容,看起来像'../DisplayPhotod6f6.jpg'
s/\(.\.\.\/DisplayPhoto.\{4,}\.jpg\)*'/\1'/g
这个正则表达式捕获了一些但不是所有的事件,你知道为什么吗?
\.{4,}
正在尝试匹配4个或更多的
字符。看起来您想要的是“匹配任何字符的4个或更多”(\{4,}
),但“匹配4个或更多非
字符”([^.]\{4,}
)可能更准确。您还需要将模式末尾的一个*
更改为*
,因为*
当前应用于整个\(\)
组。\。{4,}
正在尝试匹配4个或更多的
字符。看起来您想要的是“匹配任何字符的4个或更多”(\{4,}
),但“匹配4个或更多非
字符”([^.]\{4,}
)可能更准确。您还需要将模式末尾的lone*
更改为*
,因为*
当前正在应用于整个\(\)
组。以下正则表达式:/(\.\../DisplayPhoto.\.jpg)/gi
根据以下示例进行测试:
../DisplayPhotocef3.jpg?t=before&tn=1&id=54
../DisplayPhotod6f6.jpg?t=before&tn=1&id=130
将导致:
../DisplayPhotocef3.jpg
../DisplayPhotod6f6.jpg
下面的regexp:
/(\.\./DisplayPhoto.*\.jpg)/gi
根据以下示例进行测试:
../DisplayPhotocef3.jpg?t=before&tn=1&id=54
../DisplayPhotod6f6.jpg?t=before&tn=1&id=130
将导致:
../DisplayPhotocef3.jpg
../DisplayPhotod6f6.jpg
我认为最简单的方法是:
s/?.*$/'/g
上面写着:删除问号后的所有内容,并用一个引号替换。我认为最简单的方法是:
s/?.*$/'/g
%s/\('\.\.\/DisplayPhoto\w\{4,}\.jpg\).*'/\1'/g
这说明:删除问号后的所有内容,并用单个引号替换
%s/\('\.\.\/DisplayPhoto\w\{4,}\.jpg\).*'/\1'/g
一些注意事项:
- %将导致交换在所有行上工作
- \如果存在一些格式错误的文件名,请使用w而不是“.”
- 将匹配正则表达式开头的“.”替换为它应该匹配的“.”
- %将导致交换在所有行上工作
- \如果存在一些格式错误的文件名,请使用w而不是“.”
- 将匹配正则表达式开头的“.”替换为它应该匹配的“.”
qa
/显示照片
f?dt'
N
Q
然后是一些
@a
,或者20000@a
浏览所有行。我会使用宏,有时比regexp更简单(而且是交互式的):
qa
/显示照片
f?dt'
N
Q
然后是一些
@a
,或者20000@a
浏览所有行。您能给出一个遗漏事件的示例吗?Amardeep,它遗漏了“../DisplayPhotocef3.jpg?t=before&;tn=1&;id=54'
,”../DisplayPhotod6f6.jpg?t=before&;tn=1&;id=130'
,更多。组开头第一个“.”的目的是什么?是否可以用“'”(单引号)替换?能否给出一个遗漏事件的示例?Amardeep,它遗漏了“../DisplayPhotocef3.jpg?t=before&;tn=1&;id=54'
,”../DisplayPhotod6f6.jpg?t=before&;tn=1&;id=130'
,更多。组开头第一个“.”的目的是什么?它能被一个“'”(单引号)替换吗?奇怪的是,“../DisplayPhotocef3.jpg?t=before&;tn=1&;id=54'
奇怪,它仍然不适用于”../displaypoticef3.jpg?t=before&;tn=1&;id=54'
这是PCRE,它不同于Vim的正则表达式。这是PCRE,它不同于Vim的正则表达式。