删除字符串中的所有标签标签

发布于 2025-01-30 05:12:00 字数 2239 浏览 4 评论 0原文

我想从字符串中删除所有标签标签。

这是输入字符串。

<p>
<title>Contact Us</title>
</p>
<table dropzone="copy">
    <tbody>
        <tr>
            <td class="label" style="cursor: default;">Full Name</td>
            <td style=
"cursor: default;">[<label id="{0a4a7240-9606-416a-bf7b-ef11a47cca8e}">First name</label>] [<label id="{94263497-683b-46f9-ba0f-69f4c2736598}">Last name</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: d
efault;">Telephone</td>
            <td style="cursor: default;">[<label id="{ce68e02e-e9fd-40ee-9375-ee1b05972e9b}">Phone</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Email</td>
  <td style="cursor: default;">[<label id="{411b580e-f7e9-4dd2-a70d-947385360cd0}">Email</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Message</td>
            <td style="cursor: default;">[
<label id="{13e2ff23-135c-4c6d-beb4-2960a533cb98}">Your Message</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Company</td>
            <td style="cursor: default;">[<label id="{c3f22c3a-8fc1
-48a4-8d6a-fe346024ca2b}">Company</label>]</td>
        </tr>
    </tbody>
</table>
<p> </p>
<p> </p>

标签标签需要删除,但不应删除字符串内的值

&lt; label ID =“ {0a4a7240-9606-416a-416a-bf7b-ef11a47cca8e}”成为名字

&lt; label ID =“ {CE68E02E-E9FD-40EE-9375-EE1B05972E9B}”代码>

label ID =“ {411B580E-F7E9-4DD2-A70D-947385360CD0}”

&lt ; id =“ {13E2FF23-135C-4C6D-BEB4-2960A533CB98}”&gt;您的消息&lt;/label&gt;将成为您的消息>您的消息>

&lt; label ID = 8FC1-48A4-8D6A-FE346024CA2B}“&gt; company&lt;/label&gt;将成为company

我尝试了以下Regex [Regex] label(。*)”

&lt ;

?s )

I want to remove all label tags from a string.

This is the input string.

<p>
<title>Contact Us</title>
</p>
<table dropzone="copy">
    <tbody>
        <tr>
            <td class="label" style="cursor: default;">Full Name</td>
            <td style=
"cursor: default;">[<label id="{0a4a7240-9606-416a-bf7b-ef11a47cca8e}">First name</label>] [<label id="{94263497-683b-46f9-ba0f-69f4c2736598}">Last name</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: d
efault;">Telephone</td>
            <td style="cursor: default;">[<label id="{ce68e02e-e9fd-40ee-9375-ee1b05972e9b}">Phone</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Email</td>
  <td style="cursor: default;">[<label id="{411b580e-f7e9-4dd2-a70d-947385360cd0}">Email</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Message</td>
            <td style="cursor: default;">[
<label id="{13e2ff23-135c-4c6d-beb4-2960a533cb98}">Your Message</label>]</td>
        </tr>
        <tr>
            <td class="label" style="cursor: default;">Company</td>
            <td style="cursor: default;">[<label id="{c3f22c3a-8fc1
-48a4-8d6a-fe346024ca2b}">Company</label>]</td>
        </tr>
    </tbody>
</table>
<p> </p>
<p> </p>

The label tag needs to be removed but value inside the string should not be removed

<label id="{0a4a7240-9606-416a-bf7b-ef11a47cca8e}">First name</label> will become First name

<label id="{ce68e02e-e9fd-40ee-9375-ee1b05972e9b}">Phone</label> will become Phone

<label id="{411b580e-f7e9-4dd2-a70d-947385360cd0}">Email</label> will become Email

<label id="{13e2ff23-135c-4c6d-beb4-2960a533cb98}">Your Message</label> will become Your Message

<label id="{c3f22c3a-8fc1-48a4-8d6a-fe346024ca2b}">Company</label> will become Company

I tried the following regex [Regex]::Match( $text, '(?s)<label(.*)">' ).Groups.Value but its not working.

Any suggestions would be appreciated

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2025-02-06 05:12:00

这条正可能会起作用,您可以使用 -replace操作员而不是呼叫 regex.regex.replace

(Get-Content path\to\file -Raw) -replace '<label id="\{[\d\w-]+}">([a-z ]+)<\/label>', '$1'

请参阅

This regex could work, you can use the -replace operator instead of the call to Regex.Replace:

(Get-Content path\to\file -Raw) -replace '<label id="\{[\d\w-]+}">([a-z ]+)<\/label>', '$1'

See https://regex101.com/r/3gbJEp/1 for details.

dawn曙光 2025-02-06 05:12:00

通常是试图用正则表达。
取而代之的是,使用专用的html解析器作为
htmldocument class

示例

function ParseHtml($String) {
    $Unicode = [System.Text.Encoding]::Unicode.GetBytes($String)
    $Html = New-Object -Com 'HTMLFile'
    if ($Html.PSObject.Methods.Name -Contains 'IHTMLDocument2_Write') {
        $Html.IHTMLDocument2_Write($Unicode)
    } else {
        $Html.write($Unicode)
    }
    $Html.Close()
    $Html
}

$Html = ParseHtml ' # Your Html
    <p>
    ...
    <p> </p>
'

$Html.getElementsByTagName('label') |ForEach-Object { $Null = $_.removeNode() }
$Html.body.innerHtml

<P></P>
<TABLE dropzone="copy">
<TBODY>
<TR>
<TD class=label style="CURSOR: default">Full Name</TD>
<TD style="CURSOR: default">[First name] [Last name]</TD></TR>
<TR>
<TD class=label style="CURSOR: d
efault">Telephone</TD>
<TD style="CURSOR: default">[Phone]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Email</TD>
<TD style="CURSOR: default">[Email]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Message</TD>
<TD style="CURSOR: default">[ Your Message]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Company</TD>
<TD style="CURSOR: default">[Company]</TD></TR></TBODY></TABLE>
<P></P>
<P></P>

It is generally a bad idea to attempt to parse HTML with regular expressions.
Instead use a dedicated HTML parser as the HtmlDocument class

Example

function ParseHtml($String) {
    $Unicode = [System.Text.Encoding]::Unicode.GetBytes($String)
    $Html = New-Object -Com 'HTMLFile'
    if ($Html.PSObject.Methods.Name -Contains 'IHTMLDocument2_Write') {
        $Html.IHTMLDocument2_Write($Unicode)
    } else {
        $Html.write($Unicode)
    }
    $Html.Close()
    $Html
}

$Html = ParseHtml ' # Your Html
    <p>
    ...
    <p> </p>
'

$Html.getElementsByTagName('label') |ForEach-Object { $Null = $_.removeNode() }
$Html.body.innerHtml

<P></P>
<TABLE dropzone="copy">
<TBODY>
<TR>
<TD class=label style="CURSOR: default">Full Name</TD>
<TD style="CURSOR: default">[First name] [Last name]</TD></TR>
<TR>
<TD class=label style="CURSOR: d
efault">Telephone</TD>
<TD style="CURSOR: default">[Phone]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Email</TD>
<TD style="CURSOR: default">[Email]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Message</TD>
<TD style="CURSOR: default">[ Your Message]</TD></TR>
<TR>
<TD class=label style="CURSOR: default">Company</TD>
<TD style="CURSOR: default">[Company]</TD></TR></TBODY></TABLE>
<P></P>
<P></P>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文