正则表达式:匹配'客户'在string' styles / customer.1031.css'

时间:2016-06-10 11:52:20

标签: regex node.js

我试图从nodejs中的文件路径中提取客户字符串。到目前为止,我已经想出了这个:

var fileName = 'styles/customer.1031.css';
fileName = fileName.substring(7);
fileName = fileName.substring(0, fileName.length - 4);
fileName = fileName.match('[a-z]*')[0];
console.log(fileName); // <-- yields 'customer'

我从头开始剪切styles/,从结尾剪切.css。然后我只匹配小写字符。什么是正确的正则表达式只匹配客户字符串,所以我不需要之前切断字符串? F.前。正则表达式如何在styles/之后抓住所有内容,直到.

3 个答案:

答案 0 :(得分:1)

要使用的正则表达式可能看起来像^styles/([^.]+)\..*$

  • ^styles/转换为&#34;以&#39; styles /&#39;
  • 开头
  • 然后你的匹配(至少一个字符,匹配到第一个&#39;。&#39;)
  • 然后是文字&#39;
  • 然后直到字符串结尾的任何内容(这是可选的,取决于您的需要)

答案 1 :(得分:1)

  

正则表达式如何在样式/之后捕获所有内容   。?

这就是它的样子:

styles\/(.*?)\.

Regex101

上运行它

然后可以通过\1访问捕获的字符串。

答案 2 :(得分:0)

您可以将非捕获组正则表达式用作(?:styles\/)(.*?)\.

&#13;
&#13;
var fileName = 'styles/customer.1031.css';
console.log(/(?:styles\/)(.*?)\./.exec(fileName)[1])
&#13;
&#13;
&#13;