Re: RegEx and Vb.net /// "Unrecognized escape sequence"

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



//quote
I'm not sure why you're using double slashes in your path names as
VB.Net does not use the \ character as an escape character in strings.
// end quote

That's the issue. I *don't want* to use the double slashed, and wouldn't
think (since I'm in vb.net on this one , and not c# ) I'd have to use
delimited characters.
But the code breaks .... if I use single slashes.


//quote
Dim filename As String = "c:\wutemp\myfile.txt"
Dim replaceValue As String = "c:\newFolder"
Dim newFilename As String = Path.Combine(replaceValue,
Path.GetFileName(filename))
//end quote


That would be an option, but I actually have more complex rules, that RegEx
solves perfectly.
I just used the "change folder name" as a dumbed down example.



I did all this at home in C# , and had it working. I brought it into work
and this project was vb.net , and I converted the code.







<dunawayc@xxxxxxxxx> wrote in message
news:1175012533.361598.190110@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Mar 27, 11:13 am, "sloan" <s...@xxxxxxxxx> wrote:
I have a fairly simple RegEx code below.

I am given a file name, (which I don't control) , and need to change a
folder name in it.

The code below is choking on the filename not being escaped.

"Unrecognized escape sequence"

While I can escape the findValue and replaceValue,
I don't necessarily control the fileName value. Aka, all I can do is
manually string.Replace the fileName value. (Unless someone knows
better
than I)

Do I have to do a string.Replace here? ( to make all the \ into \\ )

Or am I missing some trick in vb.net.

----------Start VB.Net code

Dim fileName As String

fileName = "C:\wutemp\myfile.txt" '<< this is given to me, I cannot
simply
say " filename = "C:\\wutemp\\myfile.txt" "

Dim replaceRegEx As System.Text.RegularExpressions.Regex = New
System.Text.RegularExpressions.Regex(fileName, getRegexOptions())

Dim findValue As String = "\wutemp\"

Dim replaceValue As String = "\newfolder\"

Dim newFileName As String = replaceRegEx.Replace(fileName, findValue,
replaceValue)

Private Function GetRegexOptions() As RegexOptions

Dim options As RegexOptions = New RegexOptions

options = options Or RegexOptions.IgnoreCase

Return options

End Function

PS
This is a repost. But I marked the other post (in .language.vb) as
"IGNORE
do not reply here".

..


Why not just use the Path class in the System.IO namespace?

string filename = @"c:\wutemp\myfile.txt";
string replaceValue = @"c:\newfolder";
string newFileName = Path.Combine(replaceValue,
Path.GetFileName(filename));

Chris



.



Relevant Pages

  • Re: Code to check if a valid e-mail address was entered
    ... Function Valid_Email(E_Address As String) As Boolean ... ' Note that the part after the @ sign must contain at least one dot, ... ' at least one other character following it, ... Dim TString As String ...
    (microsoft.public.access.modulesdaovba)
  • Re: Document Property to display more than 1 line
    ... then use the following macro to identify the character ... Dim strNums As String ...
    (microsoft.public.word.newusers)
  • RfD: Escaped Strings version 4
    ... the S" string can only contain printable characters, ... the S" string cannot contain the '"' character, ... as an escape character for the entry of characters that cannot be ... \b BS (backspace, ASCII 8) ...
    (comp.lang.forth)
  • RfD: Escaped Strings version 4
    ... the S" string can only contain printable characters, ... the S" string cannot contain the '"' character, ... as an escape character for the entry of characters that cannot be ... \b BS (backspace, ASCII 8) ...
    (comp.lang.forth)
  • Re: Copying files from the CD using SHFileOperation API
    ... > pFrom As String ... > Dim sOrigin As String ... > Dim SHFileOp As SHFILEOPSTRUCT ... VB terminates with a null character automatically. ...
    (microsoft.public.vb.winapi)