Help for regex

Hello people,
Once again I count on the help of the masters! I’m making a query on a device via SNMP and it returns me a data similar to the one below:

"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"

I need to remove the quotes and get only the first information, in this case name01. Obviously the data collected is diverse and the number of characters in each field is also variable. That is, in one query it can be name01 and in another it can be nonononono01.

I believe it is via regex, but I have no idea how to do it.

I thank you for your support.

You can use ConvertFrom-CSV to remove the qoutes and a calculated expression to split the string where there is an underscore ( _ ). This turns the string into an array:

PS C:\Users\rasim> $temp[0].Name -split '_'
name01
data01
data02
data03

Then we just reference the index of the first item, which is represented by 0:

$temp = @"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name0103013013030_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01_data01_data02_data03"
"name01010101010_data01_data02_data03"
"@ | ConvertFrom-Csv -Header Name

$temp | Select Name, @{Name='ParsedName';Expression={($_.Name -split '_')[0]}}

Output:

Name                                   ParsedName       
----                                   ----------       
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name0103013013030_data01_data02_data03 name0103013013030
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01_data01_data02_data03            name01           
name01010101010_data01_data02_data03   name01010101010  

Hi Rob, thank you very much for your reply,
These data are already in an array and I managed via regex to remove most of the string I need, the situation is now like this:

"name01
"name02
"name03
"name04"
"name05"
"name06
"name07
"name08
"name09
"name10
"name11
"name12
"name13

Note that some lines have quotation marks at the beginning and another at the end, while others only at the beginning.

Once again, thank you very much for your support.

If all you need to do is remove quotes, you can use the -replace operator (or replace string method) and replace every instance of " with an empty string. For example:

'"name' -replace '"',''

Hi Mr Mike,

Its works!!!

 

Thank you so much!!!