[英]powershell regex replace string from column in csv file
我需要從Powershell中的csv文件中提取值。 這是CSV文件的示例:
"1","ANYDATA-481190-131","<ul>
<li><strong>487410-131</strong> (prateado)</li>
<li><strong>502478-131</strong></li>
<li><strong>555996-131</strong> (prateado)</li>
<li><strong>AEQT6T11110</strong></li>
<li><strong>AEQT6T00210</strong></li>
</ul>"
我需要提取標記<strong>
和</strong>
之間的值,並用逗號將它們放在新的CSV文件中,如下所示:
"1","ANYDATA-481190-131","487410-131, 502478-131, 555996-131, AEQT6T11110, AEQT6T00210"
編輯:
這是將來搜索的答案:
import-csv $CSV -delimiter "," -Header 1,2,3 | Select '1','2',@{n='3';e={[regex]::Matches(($_.3).Split("`n"),"(?<=<strong>)(.*?)(?=</strong>)").Value -join ", "}} | Export-csv $CSV2 -Encoding UTF8 -Notype
對於名為1、2和3的3列,其中$ CSV是原始CSV文件,而$ CSV2是目標文件,
可以不使用正則表達式嗎?
ConvertFrom-Csv @'
"1", "ANYDATA-481190-131", "<ul>
<li><strong>487410-131</strong> (prateado)</li>
<li><strong>502478-131</strong></li>
<li><strong>555996-131</strong> (prateado)</li>
<li><strong>AEQT6T11110</strong></li>
<li><strong>AEQT6T00210</strong></li>
</ul>"
'@ -Header 1, 2, 3 -Delimiter ','|
Select-Object '1', '2', @{
n='3'
e={
$ofs=','
"""$(
[xml]$_.3|
Select-Object -ExpandProperty ul|
Select-Object -ExpandProperty li|
Select-Object -ExpandProperty strong
)"""
}
}
1 2 3
- - -
1 ANYDATA-481190-131 "487410-131,502478-131,555996-131,AEQT6T11110,AEQT6T00210"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.