正则表达式:除了空格之外的所有组

时间:2017-03-29 15:40:24

标签: regex

我有这个正则表达式:

^(@include rem\(\s*(.*)),\s*(.*)\)

匹配此字符串:

@include rem( padding-top, $alert-padding );

我希望能够使用$ alert-padding的组忽略最后的空白区域。我试过了:

^(@include rem\(\s*(.*)),\s*(/S)\)

替换。* by / S但它不匹配。

你可以在这里玩正则表达式: https://regex101.com/r/9rouVU/1/

2 个答案:

答案 0 :(得分:1)

您可以使用\S+来匹配一个或多个非空白字符:

^(@include rem\(\s*(\S+))\s*,\s*(\S+)\s*\)

请参阅regex dem0

<强>详情:

  • ^ - 字符串开头
  • (@include rem\(\s*(\S+)) - 第1组捕获:
    • @include rem\( - 文字子串@include rem(
    • \s* - 0+ whitespaces
    • (\S+) - 第2组捕获1个非空白符号
  • \s*,\s* - 0+个空格,,和0 +空格
  • (\S+) - 1个非空白符号
  • \s* - 0+ whitespaces
  • \) - 文字)

答案 1 :(得分:0)

您可以使第二组中的匹配变得懒惰,然后匹配另外的可选空格:

^(@include rem\(\s*(.*)),\s*(.*?)\s*\)