Jump to content

parsing out data


gcue
 Share

Recommended Posts

i am trying to get the list that corresponds to a list name from a string.  i am having trouble getting just the names that correspond to the list in question.

ie: when querying for Test 2 list I only want jack,jill,tim

#include <Array.au3>
$msg_normal = 262144


local $lists_array[3]


$lists_array[0] = "Test"
$lists_array[1] = "Test 2"
$lists_array[2] = "Test_3"


$string = "Test: mike,peter,bob|Test 2: jack,jill,tim|Test_3: fabio,mark,jed"


for $x = 0 to ubound($lists_array)-1
$current_list = $lists_array[$x]


$names = stringregexpreplace($string, "(?s)(?i)" & $current_list & ":(|*?)", "$1")


debug($current_list, $names)
next




Func Debug($variable1 = "", $variable2 = "", $variable3 = "")


;~  #include <array.au3>
;~  $msg_normal = 0


If IsArray($variable1) Then
_ArrayDisplay($variable1)
Else
If $variable2 <> "" Then
$variable1 &= @CRLF & $variable2
EndIf


If $variable3 <> "" Then
$variable1 &= @CRLF & $variable3
EndIf


ClipPut($variable1)
MsgBox($msg_normal, "Debug", $variable1)
EndIf


EndFunc   ;==>Debug

Thanks in advance!

 

 

Link to comment
Share on other sites

local $lists_array[3] = ["Test", "Test 2", "Test_3"]

$string = "Test: mike,peter,bob|Test 2: jack,jill,tim|Test_3: fabio,mark,jed"

For $x = 0 to ubound($lists_array)-1
    $current_list = $lists_array[$x]
    $names = StringRegExpReplace($string, "(?is).*\Q" & $current_list & "\E:\h*([^|]+).*", "$1" )
    ConsoleWrite($names & @CRLF)
Next

Link to comment
Share on other sites

  • Moderators

gcue,

 

$names = StringRegExpReplace($string, "(?U)^.*\|?" & $current_list & ":\s(.*)(\|.*)?$", "$1")
SRER decode:

(?U)           - Not greedy
^              - Start at the beginning
.*\|?          - There might be some characters ending in "|"
$current_list  - followed by the title...
:\s            - ...a colon and a space
(.*)           - Capture the text
(\|.*)?        - but not after another "|"
$              - and so we get to the end
That works for me. :)

M23

Edit: It always takes me too long to develop RegEx patterns. :(

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

kylomas,

A nice thought - thanks! :D

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Hmmm... couldn't output an array using a single regex  :huh:

#include <Array.au3>

Local $lists_array[3] = ["Test", "Test 2", "Test_3"]
$string = "Test: mike,peter,bob|Test 2: jack,jill,tim|Test_3: fabio,mark,jed"

For $x = 0 to ubound($lists_array)-1
  $names = StringSplit(StringRegExp($string, $lists_array[$x] & ':\h*([^|]+)', 3)[0], ",", 2)
  _ArrayDisplay($names)
Next
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...