升级到 bootstrap 3 时处理 btn class 变化的正则表达式

Regular expression for handling btn class changes while upgrading to bootstrap 3

我正在将大型应用程序从 bootstrap v2 迁移到 bootstrap 3.I 我正在使用 Notepad++ 进行搜索,使用正则表达式搜索要替换的旧 class 名称。在 bootstrap 3 中,btn class 使用没有任何其他内置 btn 样式,即 btn-pimary、btn-success、btn-info、btn-warning、btn-danger、btn-link 应该改为 btn btn-default.

所以我需要一个正则表达式模式来查找这些行中出现的 btn

 <button class="btn btn-mini" />
 <button class="btn btn-small" />
 <button class="btn btn-large"/>
 <button class="btn"/>
 <button class="btn "/>
 <button class=" btn"/>

但在

中没有找到 btn
<button class="btn btn-mini btn-primary" />
<button class="btn btn-small btn-success" />
<button class="btn btn-large btn-info"/>
<button class="btn btn-error"/>

我有 (?<=["'\s])btn(?=["'\s]) 这个正则表达式,但它会搜索所有 btns,包括 btn-primary、btn-success 等。如何修改它,使其在没有 btn-primary、btn-success 等的情况下使用时仅匹配 btn。

试试这个:

(?<=class=")\s?btn\s?(btn-)?(mini|small|large)?\s?(?=")

演示:https://regex101.com/r/VhwAym/2

仅捕获 btn:

(?<=class=")\s?btn(?=\s?(?:btn-)?(?:mini|small|large)?\s?")

演示:https://regex101.com/r/VhwAym/3

您甚至不需要环顾四周 - 使用模式

只需一些简单的交替就足够了
"\s*btn\s*(?:btn-(?:mini|small|large))?\s*"

Demo on Regex101