Jump to content
Sign in to follow this  
johnmcloud

[SOLVED] _StringBetween can remove?

Recommended Posts

johnmcloud

Hi guys, i have a simple question. Sometime i'm using _StringBetween for situation like this:

$test = "asdtewe[asdsad231321132@#]"
$string = _StringBetween($test,"[","]")
ConsoleWrite($string)

Result is:

asdsad231321132@#

But if i want to remove that piece of string? Example remove all character/number/symbol between "[" and "]", included the "[" "]"? For a result like this:

asdtewe

Someone can post an example?

Thanks for support :)

Edited by johnmcloud

Share this post


Link to post
Share on other sites
BrewManNH

Try this:

#include <String.au3>
$test = "asdtewe[asdsad231321132@#]"
$temp =  _StringBetween($test,"[","]")
$string =StringReplace($test, "[" & $temp[0] & "]", "")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $string = ' & $string & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

I'm sure there's a RegEx that would do the same thing in one line, but I haven't wrapped my head around RegEx yet, to my shame.

Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
johnmcloud

Work BrewManNH, thanks.

Do you mean this function, StringRegExpReplace?

I someone can provide a post for do the same thing with only one line, it's apprecciated :)

Share this post


Link to post
Share on other sites
johnmcloud

I have done by myself ( a little random, I must say the truth :) )

$string = "asdtewe[asdsad231321132@#]"
$after = StringRegExpReplace($string, "([[])(.*)([]])","")
ConsoleWrite("Test02:" & $after & @CRLF)
Edited by johnmcloud

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • ruslanas402
      By ruslanas402
      Why doesn't print the output??

      #include <String.au3> Global $x = 'gdsgklj fsdl dasfgh fsfef ghterfsd kia gdfhgfgdsgklj fsdl dasfgh fsfef' $z = _StringBetween($x, 'fsdl', 'kia') ConsoleWrite($z & @CRLF)
      Shouldn't it be
      dasfgh fsfef ghterfsd   instead of nothing?
       
    • 6105
      By 6105
      Hi, have here some alternative method to count rows..

      I can't use StringSplit coz array is already buided with _StringBetween, some tips pls,
      Reproducer code:


      #include <String.au3> #include <Array.au3> #include <IE.au3> $file = @TempDir&'\au3test.tmp' ConsoleWrite('File = '&$file&@CRLF) $oIE = _IECreate('http://autoitscript.com/forum',0,0) _IELoadWait($oIE) $sHTML = _IEBodyReadHTML($oIE) $wFile = FileWrite($file,$sHTML) $nFileHTML = FileOpen($file, 0) If @error then ConsoleWrite('error with FileOpen($file, 0)'&@CRLF) While 1 Local $aArray[10], $aRead = FileReadLine($nFileHTML) If @error then ExitLoop $aSearch = StringInStr($aRead,'<LI><SPAN') If $aSearch > 0 Then $aArray = _StringBetween($aRead, 'href="', '"') _ArrayDisplay($aArray) EndIf WEnd ProcessClose('IEXPLORE.EXE') FileDelete($file)
      Thanks in advance for any tips.

      Tedy.
    • johnmcloud
      By johnmcloud
      Hi guys, i have a little problem to set the @error to _StringBetween
      The script:

      While 1 $line = StdoutRead($CMDCommand) If @error Then ExitLoop $tmp = _StringBetween($line, "] ", '%') If Not @error Then $replace = StringReplace($tmp[0], "%", "") MsgBox(64, "Test", "string found") EndIf WEnd
      This script working, but i need to set something if the string don't match. I have try like this:


      While 1 $line = StdoutRead($CMDCommand) If @error Then ExitLoop $tmp = _StringBetween($line, "] ", '%') If Not @error Then $replace = StringReplace($tmp[0], "%", "") MsgBox(64, "Test", "string found") Else MsgBox(17, "Test", "no string found") EndIf WEnd
      But i have everytime the error MsgBox also if the string is found. Some advice?
      Thanks for support
×