【问题标题】:PowerShell regular expression to get all the HTML tagsPowerShell正则表达式获取所有HTML标签
【发布时间】:2015-02-17 00:43:49
【问题描述】:

我有一个带有 HTML 标签的字符串。我必须编写 PowerShell 脚本来使用正则表达式拆分此字符串以用于打开和关闭 HTML 标记。我已经尝试了很多次,但没有运气。 )[^>]> 我试过这个来打开标签。但它只从字符串中删除 '' 而不是整个标签。 我的字符串是这样的:

    <Div id="div1">
<Div>
some text inside.
</Div>
<font>this is text inside font.
</font>
<h1>this is h1 text.
</h1>
<p>
This is a new paragraph.
</p>
</Div>

我想要的输出是:里面有一些文本。这是字体内的文本。这是h1文本。这是一个新段落。

【问题讨论】:

    标签: regex powershell


    【解决方案1】:

    不确定你是如何进行拆分的,但应该没那么难:

    $Text = 
    @'
       <Div id="div1">
    <Div>
    some text inside.
    </Div>
    <font>this is text inside font.
    </font>
    <h1>this is h1 text.
    </h1>
    <p>
    This is a new paragraph.
    </p>
    </Div>
    '@
    
    $text -split '<.+?>' -match '\S'
    
    some text inside.
    
    this is text inside font.
    
    this is h1 text.    
    
    This is a new paragraph.
    

    【讨论】:

    • @Matt 感谢您的回复。它不工作。第一个'@'作为公认的令牌给出错误。其次是 '<.>' 不起作用。请提出一些建议。
    • 我试过 '<.>' 但它只删除了 ''。
    • 这里的字符串(@'-'@)只是在创建测试数据。您需要将实际数据替换为 $text。 '<.>' 正则表达式在测试中似乎工作正常。如果不知道“不工作”是什么意思,我就不能“提出建议”。
    • @Asu 你是什么意思它不起作用?这对我来说也很好
    • 我刚刚更新了答案,以包含针对您发布的测试数据运行该正则表达式的结果。如果这不是你想要的,那么我误解了这个问题。如果您得到不同的结果,那么您的数据与您发布的数据不同。
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多