Jump to content

[Solved] Delete content between string and white space in multiple files


sundar
 Share

Recommended Posts

Here is the sample of the content of a file(s):-

string1 strin2 other-string some-other-string foo=bar string(n)

I used _FileListToArrayEx to list all the files with specific extension. Now i am removing specific strings which are not required. I used _ReplaceStringInFile to delete specific string. Hoever i am struck while deleting the string "foo=bar" where "foo=" is common in some of the files and bar can be anything else. So my requirement is to either delete entire foo=bar or delete anything after foo= till white space is reached or insert some-static-string after foo=

Any help is appriciated.

Edited by sundar
Link to comment
Share on other sites

  • Moderators

sundar,

You need to use a Regex to do this: ;)

$sString = "string1 strin2 other-string some-other-string foo=bar1 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar2 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar3 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar4 string(n)"

$sStripped = StringRegExpReplace($sString, "(?U)(foo=.*\s)", "")

MsgBox(0, "Result", $sStripped)

And this is how it works

(?U)        - Do not be greedy - take the smallest match
(foo=.*\s)    - Look for "foo=" and everything up to the next space
            (that is why we need to tell the SRER not to be greedy or it will use the last space it finds)

""        - Replace what was found with nothing

All clear? :)

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

Another example

$sString = "string1 strin2 other-string some-other-string foo=bar1 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar2 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar3 string(n)" & @CRLF & _
           "string1 strin2 other-string some-other-string foo=bar4 string(n)"

$sStripped = StringRegExpReplace($sString, "(?U)(foo=.*(?=\s+))", "") ;This would not replace the space

MsgBox(0, "Result", $sStripped)

$sStripped = StringRegExpReplace($sString, "(?U)(foo=)(.*(?=\s+))", "\1STATIC") ;This would replace with the word "STATIC"

MsgBox(0, "Result", $sStripped)

Regards :)

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

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

×
×
  • Create New...