用于文本下划线的正则表达式

RegEx for underlining text

如何将一行文本与正则表达式匹配,并在其后跟一行与初始匹配中的字符一样多的破折号,以实现 text-only 下划线。我打算将其与编辑器中的搜索和替换功能(可能在宏范围内)一起使用。可能,但不一定,Visual Studio代码。

This is a heading

应该变成

This is a heading
-----------------

我想我几年前读过一个例子,但找不到了;我似乎也无法制定搜索查询以从 Google 中获得任何有用的信息(包括问题标题的变体)。如果你是,我也会对此感兴趣。

我能想到的最好的是:

^(.)(?=(.*\n?))|.
  • 换人
-
syntax note
^(.) match the first character of a line, capture it in group 1
(?=(.*\n?)) then look ahead for the rest of this line and capture it in group 2, including a line break if there's any
|. or a normal character

但文字后面必须有换行符,否则下划线只停留在同一行。

不确定它是否有用,但这是 test cases