CoffeeScript - 正则表达式



正则表达式是一个描述JavaScript支持的字符模式的对象。在JavaScript中,RegExp类表示正则表达式,String和RegExp都定义了使用正则表达式对文本执行强大的模式匹配和搜索替换功能的方法。

CoffeeScript中的正则表达式

CoffeeScript中的正则表达式与JavaScript相同。访问以下链接查看JavaScript中的正则表达式:javascript_regular_expressions

语法

CoffeeScript中的正则表达式通过将RegExp模式放在正斜杠之间来定义,如下所示。

pattern =/pattern/

示例

以下是CoffeeScript中正则表达式的示例。在这里,我们创建了一个表达式,用于查找以粗体显示的数据(<b>和</b>标记之间的数据)。将此代码保存在名为regex_example.coffee的文件中。

input_data ="hello how are you welcome to <b>Tutorials Point.</b>"
regex = /<b>(.*)<\/b>/
result = regex.exec(input_data)
console.log result

打开命令提示符并编译.coffee文件,如下所示。

c:\> coffee -c regex_example.coffee

编译后,它会生成以下JavaScript代码。

// Generated by CoffeeScript 1.10.0
(function() {
  var input_data, regex, result;

  input_data = "hello how are you welcome to <b>Tutorials Point.</b>";

  regex = /<b>(.*)<\/b>/;

  result = regex.exec(input_data);

  console.log(result);

}).call(this);

现在,再次打开命令提示符并运行CoffeeScript文件,如下所示。

c:\> coffee regex_example.coffee

执行后,CoffeeScript文件会产生以下输出。

[ '<b>Tutorials Point.</b>',
  'Tutorials Point.',
  index: 29,
  input: 'hello how are you welcome to <b> Tutorials Point.</b>' ]

heregex

我们使用JavaScript提供的语法编写的复杂的正则表达式难以阅读,因此为了使正则表达式更易读,CoffeeScript为正则表达式提供了一种扩展语法,称为heregex。使用此语法,我们可以使用空格来分解普通的正则表达式,也可以在这些扩展的正则表达式中使用注释,从而使它们更易于用户使用。

示例

以下示例演示了CoffeeScript中高级正则表达式heregex的用法。在这里,我们使用高级正则表达式重写了上面的示例。将此代码保存在名为heregex_example.coffee的文件中。

input_data ="hello how are you welcome to Tutorials Point."
heregex = ///
<b>  #bold opening tag 
(.*) #the tag value
</b>  #bold closing tag
///
result = heregex.exec(input_data)
console.log result

打开命令提示符并编译.coffee文件,如下所示。

c:\> coffee -c heregex_example.coffee

编译后,它会生成以下JavaScript代码。

// Generated by CoffeeScript 1.10.0
(function() {
  var heregex, input_data, result;

  input_data = "hello how are you welcome to <b> Tutorials Point.</b>";

  heregex = /<b>(.*) <\/b>/;

  result = heregex.exec(input_data);

  console.log(result);

}).call(this);

现在,再次打开命令提示符并运行CoffeeScript文件,如下所示。

c:\> coffee heregex_example.coffee

执行后,CoffeeScript文件会产生以下输出。

[ '<b>Tutorials Point.</b>',
  'Tutorials Point.',
  index: 29,
  input: 'hello how are you welcome to <b>Tutorials Point.</b>' ]
广告