regex 删除以特定单词开头的行中所有点的正则表达式

xpszyzbs  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(159)

我需要一个正则表达式来改变这个:

.my-class {
  @apply .p-4 .bg-red-500;
}

变成这样:

.my-class {
  @apply p-4 bg-red-500;
}

我找到了这个正则表达式,但它不工作:

(?<=@apply.*)\.

有什么主意吗?

f45qwnt8

f45qwnt81#

您的正则表达式将在.NET或Python PyPi regex模块或JavaScript ECMAScript 2018+兼容环境中工作,这些环境支持无限宽度lookbehind模式。
如果是PCRE/Java/Ruby,则可以使用

((?:\G(?!^)|@apply)[^.\r\n]*)\.

然后用$1来替换对Group 1的反向引用。请参见regex demo。我假设您要查找与@apply在同一行上的点,所以我将\r\n添加到求反字符类中,如果不是这样,则删除\r\n

  • 详细数据 *:
  • ((?:\G(?!^)|@apply)[^.\r\n]*)-组1:上一个成功匹配的结尾(\G(?!^))或@apply,然后是除点、CR和LF字符以外的零个或多个字符
  • \.-一个点

相关问题