【发布时间】:2021-05-13 15:41:36
【问题描述】:
我拥有的是:
我做了一个简单的Powershell脚本来替换文本文件的内容并重写文件(UTF8编码很重要):
((Get-Content -path *.adoc -Raw -Encoding utf8) -replace '\[.dfn .term]#.*#','[.dfn .term]_.*_') | Set-Content -Path *.adoc -Encoding utf8
当我尝试像这样运行脚本时,我发现我正在用纯文本字符串替换正则表达式字符串。
我想要实现的是:
找到以[.dfn .term] 开头、在# 和# 之间有任意数量的字符的行,并将# 替换为_。保持[.dfn .term] 和# everything between # 不变。
我无法将所有# 替换为_,因为也可能存在[.keyword]#something# 之类的文本,并且需要将# 替换为*。此外,something 可以是任何东西——一个词或一个短语。
处理模式和 RegEx 组超出了我的知识范围。我将不胜感激。
示例:
我有: 一个句子是[.dfn .term]#Words# 的字符串,它有一个完成的[.keyword]#Thought#。句子形式为[.dfn .term]#Paragraphs#。 [.dfn .term]#Paragraphs# 表单文本。文字很酷。
我想拥有: 一个句子是[.dfn .term]_Words_ 的字符串,它有一个完成的[.keyword]*Thought*。句子形式为[.dfn .term]_Paragraphs_。 [.dfn .term]_Paragraphs_ 表单文本。文字很酷。
【问题讨论】:
-
能否贴出一些你可以拥有的值和替换后的期望值的例子,我想会更容易理解和帮助你。
-
@SantiagoSquarzon 我添加了一个示例。
标签: regex powershell