Regular-Expressions

这个文章我们来学一学在vscode中如何使用正则表达式。

正则表达式,顾名思义,是一个表达式。它表达的是 字符串匹配规则,也就是规定 什么样的字符串可以被匹配到 。比如\d表示匹配 单个数字 的规则,\w表示匹配单个字母、数字或者下划线等等。

如何启用正则表达式#

在vscode中,快捷键ctrl+F可以快速打开使用正则表达式匹配字符串的窗口,此时会自动打开输入框旁第三个选项 使用正则表达式(Alt+R),当然你也可以使用快捷键ctrl+H的方式打开查询窗口,再用快捷键Alt+R来决定是否启用正则表达式。

启用之后,就可以在输入框中输入正则表达式来匹配字符串了。

基本的正则表达式规则:#

这一节我们先来讲讲基础的正则表达式编写方式,旨在初步介绍如何使用正则表达式来匹配字符串。

正则表达式主要由以下几部分组成:

  1. 基本字符 :字母(abc),数字和一些英文符号(@,_)等等。例如正则表达式abc将会直接匹配字符串abc,包括abcdhfue中的abc(如果你没有启用了全字匹配Alt+W)。
  2. 元字符:元字符是正则表达式中用来表达抽象匹配规则的字符。可以分为字符类、量词类、边界、分组等若干内容。
    1. 字符类:表示一类或若干类字符,常见的字符类
      • .:匹配任意单个字符(换行符除外)。
      • \d:匹配任意数字(0-9)(digital)。
      • \D:匹配任意非数字。
      • \w:匹配任意单词字符(字母、数字或下划线)(word)。
      • \W:匹配任意非单词字符。
      • \s:匹配空白字符(空格、制表符等)(space)。
      • \S:匹配非空白字符。
      • [abc]:匹配 abc 中的任意一个。
      • [^abc]:匹配除 abc 以外的任意字符。
      • [a-z]:匹配从 az 范围内的字符。
    2. 量词:指定字符或模式的重复次数。如:
    • *:匹配 0 次或多次。如a*表示匹配任意长度的
    • +:匹配 1 次或多次。
    • ?:匹配 0 次或 1 次。
    • {n}:匹配恰好 n 次。
    • {n,}:匹配至少 n 次。
    • {n,m}:匹配 n 到 m 次。

(3)边界#

用于匹配字符串的开头或结尾:

  • ^:匹配字符串开头。
  • $:匹配字符串结尾。
  • \b:匹配单词边界。
  • \B:匹配非单词边界。

(4)分组与捕获#

将部分正则表达式组合在一起,并捕获匹配结果:

  • ():捕获分组。
  • (?:...):非捕获分组。
  • |:表示逻辑“或”,如 a|b 匹配 ab

(5)转义字符#

用于匹配元字符本身或特殊字符:

  • \:转义符,如 \. 匹配字符 .

从Md走向typst

前言:#

虽然用md写了不少报告,而且自己其实也搞了一些和md相关的工作流,但其实,如果想要扩展md的功能的话,就要改md的渲染逻辑或者使用html标签。

不过确实有比md更好用的文档标记语言,这就是typst。typst拥有非常强大的 排版 功能,比如字体格式修改、段落缩进等等,

环境:#

在vscode中安装两个插件:tinymist typstTypst companion。前者会支持实时预览,后者会支持一些简单的语法高亮。

你可能还需要下载typst编译器来导出pdf。

开始:#

我们首先创建一个.typ文件,这是typst编辑器可以识别并编译生成pdf的文件的后缀。

一般文章分为标题、段落、数学公式、图表等。在typst中,文段就像md中那样简单。typst会自动将 分段 的纯文本识别为 自然段落。参见template.typ的解释。

typst的基础语法非常简单,比如用=表示一级标题,==就是二级标题(以此类推),

Ps1历险记

说点闲话#

所谓ps1,全称为Windows Powershell。顾名思义,这是一种用在win平台上的shell。而shell是用户与操作系统内核进行交互的接口。一般而言,shell可以执行各种命令,运行脚本,控制系统环境等等。

几乎所有常见的平台都会给出shell接口,比如赫赫有名的shbashzsh。而powershell则是用于win平台上的shell,也就是说,powershell为win用户提供了和操作系统交互的深层接口。

图形化界面难以自动化,这是为了便用性而做的牺牲。但是如果为了追求效率,那么就有必要用脚本来代替重复的工作。可以编写.ps1脚本来取代一些重复性的命令输入,并在终端中采用.\scriptName.ps1的形式来调用。

需要注意的是,windows本身限制.ps1脚本的运行,你需要修改当前终端的脚本运行权限才能运行写好的脚本,这可以算是一种保护。

以上为一些闲话。

我的ps1编写环境#

我使用vscode作为ps1的编辑器。vscode上微软也写好了供ps1编写的插件,可以让你方便地写相关的脚本。直接在插件中搜索PowerShell就行。

复活吧我的Xsim, 但变成了Vscode+modelsim的形状力

在笔者还在上数逻课程的时候,vivado的sim就已经似掉了。。。

吃了一年的时后我决定复活xsim,但是由于vivado 的操性这事实在太难。

所以我选择 续弦 使用vscode+modelsim的方式替换原来的vivado仿真工作流。

教程:#

我参考的教程

Q&A:#

  • 环境配置过程中出现报错:VsCode联合Modelsim进行自动编译,蓝色波浪线,Error: (vlog-66) Execution of vlib.exe failed.