迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

TypeScript 中的正则表达式

作者:迹忆客 最近更新:2023/03/19 浏览次数:

RegExp 是正则表达式,用于使用 TypeScript 匹配目标字符串中的一组固定字符。

RegExp 对象有许多属性和方法。模式匹配时,每个属性都有不同的选项。

在 TypeScript 中使用正则表达式

Regex 可以通过两种方式在 TypeScript 中实现。其中之一是分配正则表达式文字类型 RegExp

const rExp : RegExp = /[A-C]/g;

另一种表达正则表达式的方法是通过 RegExp 构造函数。

const rExp : RegExp = new RegExp("[A-C]", "g");

对于本篇文章的其余部分,将使用常量正则表达式来匹配测试字符串。

在 TypeScript 中使用 test 方法检查目标字符串中是否存在模式

RegExp 的测试方法可用于通过返回 boolean 变量来检查目标字符串中是否存在特定模式或正则表达式。

const targetString : string = "All is well";
// regex to check if 'All' word is present or not.
const rExp : RegExp = /All/;
console.log(rExp.test(targetString));

输出:

true

在 TypeScript 中使用 RegExp 的字符串 matchexec 方法在目标字符串中查找匹配项

字符串中的 match 方法或 RegExpexec 方法可以找到目标字符串中与正则表达式对应的匹配项。

这两种方法在查找目标字符串中的第一个匹配项时行为相似。

const targetString : string = "All is well";
const rExp : RegExp = /All/;
console.log(rExp.exec(targetString));
console.log(targetString.match(rExp))

输出:

["All"]
["All"]

这些函数在查找匹配字符串的所有情况或使用全局标志集进行搜索方面有所不同。

const targetString : string = "All is well and Beautiful";
const rExp : RegExp = /[A-C]/g;
console.log(rExp.exec(targetString));
console.log(targetString.match(rExp))

输出:

["A"]
["A", "B"]

但是,exec 函数也可以找到正则表达式对应的目标字符串中的匹配总数。

function getMatches( target : string, rExp : RegExp, matches : Array<RegExpExecArray> = []) {
    const matchIfAny  = rExp.exec(target);
    matchIfAny && matches.push(matchIfAny) && getMatches(target, rExp, matches);
    return matches;
}

const rExp : RegExp = /[A-C]/g

const test_string : string = "All is Well and Beautiful";

console.log(getMatches(test_string, rExp, []).map( arr => arr[0]));

输出:

["A", "B"]

在 TypeScript 中的 RegExp 文字表达式中使用标志

正则表达式中的一些常见标志包括忽略案例标志 i、全局标志 g 和多行标志 m

以下代码段演示了如何使用 im 标志。

const targetString : string = `#1 First line
#2 Second Line
#3 Third liNe`;
// regex to check  word is present or not.
const rExp1 : RegExp = /line/g;
const rExp2 : RegExp = /line/gi;
const rExp3 : RegExp = /^#\d/gi;
const rExp4 : RegExp = /^#\d/gim;
console.log(targetString.match(rExp1));
console.log(targetString.match(rExp2));
console.log(targetString.match(rExp3));
console.log(targetString.match(rExp4));

输出:

["line"]
["line", "Line", "liNe"]
["#1"]
["#1", "#2", "#3"]

因此,i 标志捕获了所有出现的 line,无论大小写如何。

m 标志通常可用于在行的开头和结尾查找模式。

在这个例子中,设置了 m 标志,可以找到所有在行首以数字开头的匹配项。

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:163 分类:编程语言

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便