使用Regex和PowerShellreplaceCSV中的多个行模式?
我有一个Excel文件,其中包含数千行数据,我使用各种PowerShell脚本从SharePoint服务器中检索数据。
行的内容结构非常相似:
General/Categoryname /ADMIN_XXXX_YEAR(random stuff here)/more_random_stuff_here.filetype
问题是我需要过滤除了ADMIN_XXXX_YEAR(randomstuffhere)
部分的所有内容。
就正则expression式而言,我会看到类似于:
http://www.regexper.com/#General \%2F%28 \ w%2B%29 \%2F%28 \ w%2B%29_%28 \ d%2B%29_%28 \ d%2B%29 \%28%28%* 29 \ 29%
(尽pipe公平(\w+)\/(\w+)_(\d+)_(\d+)\((.*)\)
应该足够了)。
是的,我知道我的正则expression式并不是一stream的,但expression式通常会达到我需要的目的,因为它会find我所需要的。 这里的问题大部分来自于我在StackExchange上所了解和search的内容,如果没有VBA脚本,就无法将其应用于Excel。 有内部的search和查找,虽然我不清楚如何执行这样的search将起作用。 也许有一种方法在PowerShell中做到这一点,我不知道?
如果有人有一些可以帮助我的信息材料,我将不胜感激。
可以在Excel中使用如下公式完成:
=MID(A1,FIND("ADMIN",A1),FIND("/",A1,FIND("ADMIN",A1))-FIND("ADMIN",A1))
假设应用于单元格A1。
或者使用带有/
作为分隔符的文本到列,并删除剩余。
只是为了说明import-csv
build议,你可以尝试类似的东西
[System.Collections.ArrayList]$output = @() $csv = import-csv yourCSVfile.csv foreach ($row in $csv) { $string = select columnName $parts = $string -split "/" $output.add($parts[2]) } $output
假设你的string,
一般/类别名称/ ADMIN_XXXX_YEAR(这里是随机的东西)/more_random_stuff_here.filetype
是csv中的一列,你的部分一直跟着第二个斜线。 如果您的斜线在csv中分隔列,您可以执行$output.add($string)
并跳过$parts
东西。
- VBA中的条件正则expression式
- 使用Javascript中的正则expression式来匹配Excel中SUM函数的格式
- 使用jQuery Datatables 2016将带有换行符的值导出到Excel中的单元格中
- Excel正则expression式macros将search一列中的匹配项,将所有匹配的整行粘贴到另一个工作表中
- 使用喜欢比较一个string在Excel中
- 使用Java过滤掉CSV文件中的数字
- 使用索引和匹配函数从工作簿中的多个工作表中返回一个值
- RegEx模式来标记除<img>之外的链接的空锚点
- 一个正则expression式replace可以运行在一个范围,而不是循环在Excel中的单元格?