gpt4 book ai didi

regex - 使用 Perl 6 进行批量文本处理

转载 作者:行者123 更新时间:2023-12-01 09:47:34 24 4
gpt4 key购买 nike

我正在阅读 的 Think Perl 6 Laurent Rosenfeld,与 Allen B. Downey
最近这是一本很好的读物。

它的 .tex 文件在 github here 中可用.

它有这样的代码示例:
enter image description here

我相信拥有代码块 会非常有用彩色 像这样:
enter image description here

为此,我们必须批处理上面存储库中包含的所有 .tex 文件。
为此,我们必须转换 latex 代码:

\begin{verbatim}
say 42 == 42; # True
say 42 == 42.0; # True
say 42 === 42; # True
say 42 === 42.0; # False
\end{verbatim}


\begin{verbatim}
$x eq $y # $x is string-wise equal to $y
$x ne $y # $x is string-wise not equal to $y
$x gt $y # $x is greater than $y (alphabetically after)
$x lt $y # $x is less than $y (alphabetically before)
$x ge $y # $x is greater than or equal to $y
$x le $y # $x is less than or equal to $y
$x eqv $y # $x is truly equivalent to $y
\end{verbatim}


\begin{minted}{perl6}
say 42 == 42; # True
say 42 == 42.0; # True
say 42 === 42; # True
say 42 === 42.0; # False
\end{minted}


\begin{minted}{perl6}
$x eq $y # $x is string-wise equal to $y
$x ne $y # $x is string-wise not equal to $y
$x gt $y # $x is greater than $y (alphabetically after)
$x lt $y # $x is less than $y (alphabetically before)
$x ge $y # $x is greater than or equal to $y
$x le $y # $x is less than or equal to $y
$x eqv $y # $x is truly equivalent to $y
\end{minted}

我想用 Perl 6 来完成这个。
这是我打算怎么做。
THIS IS DUMMY CODE

# First I want to skim all the .tex files in the cloned repo (with git)

for dir("ThinkPerl6/book") ->$file {
say $file if $file~~/\.tex/;
}

# Read each .tex file and modify, replace `\begin{verbatim}` with `\begin{minted}{perl6}`

for "$file.tex".IO.lines -> $line {
substitute with "\begin{minted}{perl6}" if $line ~~/\\begin\{verbatim\}/;
}

# Read each .tex file and modify, replace `\end{verbatim}` with `\end{minted}`

for "$file.tex".IO.lines -> $line {
substitute with "\end{minted}" if $line ~~/\\end\{verbatim\}/;
}

我无法超越。有什么帮助吗?使用正则表达式会很有帮助。

最好的祝福,

苏曼

最佳答案

您需要执行以下步骤:

  • 创建应用了替换的每一行的副本。您可以使用 subst method对于那个
  • 将修改后的副本写入新文件(可能添加了扩展名 .new 左右)
  • 可选地,移动 .new覆盖原始文件。见 this example寻找灵感。

  • 我希望这有帮助。

    关于regex - 使用 Perl 6 进行批量文本处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45609695/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com