Board logo

标题: [问题求助] 求指点PowerShell正则删除指定字符 [打印本页]

作者: 小白龙    时间: 2022-7-16 21:08     标题: 求指点PowerShell正则删除指定字符

下面的代码, 我想找到每行最后一个#,
然后删除其前的空格(如果有)
再删除#号及其后面的字符,
如果一行最前有个#后面是字符, 则此行将变成空行,也需要删除掉

求高手指点一下正则! 多谢!

最后要得到下面结果:

#Trim(#)
Ab.T#rim()
A#b.Trim()
  1. @'
  2. #Trim(#)#aabc
  3. Ab.T#rim() #baaa
  4. #AAA
  5.    #BBB
  6. A#b.Trim()    #ccccccc
  7. '@ -replace '\s*#.+'
复制代码

作者: flashercs    时间: 2022-7-16 22:25

本帖最后由 flashercs 于 2022-7-16 22:36 编辑
  1. @'
  2. #Trim(#)#aabc
  3. Ab.T#rim() #baaa
  4. #AAA
  5.    #BBB
  6. A#b.Trim()    #ccccccc
  7. '@ -replace '(?m)\s*#[^#\n]*$'
复制代码

作者: 小白龙    时间: 2022-7-17 07:12

回复 2# flashercs


    感谢大侠, 我试了一下, 下面多行字符串执行后, 第一行有空行
  1. @'
  2. #AAA
  3. #Trim(#)#aabc
  4. #BBB
  5. #CCC
  6. Ab.T#rim() #baaa
  7. #CCC
  8.    #BBB
  9. A#b.Trim()    #ccccccc
  10. '@ -replace '(?m)\s*#[^#\n]*$'
复制代码

作者: flashercs    时间: 2022-7-17 15:03

本帖最后由 flashercs 于 2022-7-17 15:18 编辑

回复 3# 小白龙
  1. @'
  2. #AAA
  3. #Trim(#)#aabc
  4. #BBB
  5. #CCC
  6. Ab.T#rim() #baaa
  7. #CCC
  8.    #BBB
  9. A#b.Trim()    #ccccccc
  10. '@ -replace '(?m)(?>^\s*#[^#\n]*$\n?|\s*#[^#\n]*$)'
复制代码
  1. @'
  2. #AAA
  3. #Trim(#)#aabc
  4. #BBB
  5. #CCC
  6. Ab.T#rim() #baaa
  7. #CCC
  8.    #BBB
  9. A#b.Trim()    #ccccccc
  10. #ttt
  11. '@ -replace '(?m)(?>^\s*#[^#\n]*$\n?|[^\S\n]*#[^#\n]*$)'
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2