首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex删除一行中以特定单词开头的所有点。

regex删除一行中以特定单词开头的所有点。
EN

Stack Overflow用户
提问于 2022-11-17 16:55:30
回答 2查看 29关注 0票数 -1

我需要一个regex来改变这一点:

代码语言:javascript
复制
.my-class {
  @apply .p-4 .bg-red-500;
}

这方面:

代码语言:javascript
复制
.my-class {
  @apply p-4 bg-red-500;
}

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

代码语言:javascript
复制
(?<=@apply.*)\.

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-17 18:18:40

您的regex将在支持无限宽查找模式的.NET或Python PyPi regex模块或JavaScript ECMAScript 2018+兼容环境中工作。

如果是PCRE/Java/Ruby,您可以使用

代码语言:javascript
复制
((?:\G(?!^)|@apply)[^.\r\n]*)\.

并将其替换为对组1的$1反向引用。参见regex演示。我假设您希望在与@apply相同的行上找到点,所以我将\r\n添加到否定字符类中,如果不是这样的话,删除\r\n

详细信息

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

Stack Overflow用户

发布于 2022-11-18 08:54:20

设法更改以下目录中的所有sass文件:

代码语言:javascript
复制
<?php
foreach(glob('./site/assets/stylesheets/' . sprintf("**/*.%s", 'sass')) as $file) {
  $contents = file_get_contents($file);
  $regex = '/((?:\G(?!^)|@apply)[^.\r\n]*)\./m';
  $subst = '$1';

  $result = preg_replace($regex, $subst, $contents);

  file_put_contents($file, $result);
  echo "written $file";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74479273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档