我想替换文件中的所有宽度。我们正在将所有表切换到bootstrap,所以我使用正则表达式来替换一些东西以使我的工作更轻松。
我遇到的问题是你们可以在下面的图片中看到
在第二张图片中,你们可以看到搜索正则表达式几乎都在挑选。你能解释一下原因吗?
Btw Sublime Text使用PCRE
编辑:刚刚找到了一个快速解决方案,但我仍然想知道为什么使用它不起作用。
width='\w*%'
感谢
答案 0 :(得分:3)
在你的模式中
width='.*'
点将匹配任何字符,包括单引号,并尽可能多。所以它匹配 last 单引号
之前的所有内容您可以使用非贪婪的量词.*?
来解决此问题,该量词将与少数字符匹配
width='.*?'
答案 1 :(得分:2)
使用这个:
查找:width='[^']+'
其中[^']+
表示1个或多个不是引用的字符
答案 2 :(得分:2)
.*
匹配尽可能多的输入。因此,在正则表达式width='.*'
中,正则表达式引擎执行此操作:
width='
'
所以这几乎匹配整个字符串。通常最好将字符串的内容与否定的字符类匹配:width='[^']*'
。即:“尽可能匹配,只要它不是单引号”。
或者,PCRE允许*?
量词,这意味着:匹配尽可能少。这通常更直观。然后,正则表达式将是width='.*?'
。