I am working in C# ASP.NET framework 1.1 and
for some reason Regex.Split isn't working as expected.
When trying to split a string, Split is returning an array
with the entire string in element [0] and an empty string in element
[1].
I am trying two different ways (an ArrayList and a string array)
and both are doing that. Also, IndexOf is not working,
but StartsWith does.
The code:
using System.Text.Reg ularExpressions ;
...
// some code to find CheckBoxList controls in
Request.Form
// look at Request.Form keys and split out delimiter
// which sometimes is "$" (ie "CheckBoxList1$ 1")
// and sometimes ":" (ie CheckBoxList1:1 )
// (is there any property for what .NET uses?), so to
get delim we
// use a function to return 1st non alphanum char
after control name
string _sIndexDelim =
GetControlNameD elimiter(CheckB oxList1.ID);
foreach (string _key in
HttpContext.Cur rent.Request.Fo rm.AllKeys)
{
//FOR SOME ODD REASON, THIS DOESN'T WORK:
//if (_key.IndexOf(C heckBoxList1.ID +
_sIndexDelim, 1) 0)
// BUT THIS WORKS (?)
if (_key.StartsWit h(CheckBoxList1 .ID +
_sIndexDelim))
{
_arrKey = new ArrayList();
_arrKey.AddRang e(Regex.Split(_ key,
_sIndexDelim)); // does not split!
string[] substrings = Regex.Split(_ke y,
_sIndexDelim); // does not split!
The values:
?_key
"CheckBoxList1$ 1"
?_sIndexDelim
"$"
?_arrKey[0]
"CheckBoxList1$ 1"
?_arrKey[1]
""
?substrings[0]
"CheckBoxList1$ 1"
?substrings[1]
""
Any ideas why this is happening?
Thanks
for some reason Regex.Split isn't working as expected.
When trying to split a string, Split is returning an array
with the entire string in element [0] and an empty string in element
[1].
I am trying two different ways (an ArrayList and a string array)
and both are doing that. Also, IndexOf is not working,
but StartsWith does.
The code:
using System.Text.Reg ularExpressions ;
...
// some code to find CheckBoxList controls in
Request.Form
// look at Request.Form keys and split out delimiter
// which sometimes is "$" (ie "CheckBoxList1$ 1")
// and sometimes ":" (ie CheckBoxList1:1 )
// (is there any property for what .NET uses?), so to
get delim we
// use a function to return 1st non alphanum char
after control name
string _sIndexDelim =
GetControlNameD elimiter(CheckB oxList1.ID);
foreach (string _key in
HttpContext.Cur rent.Request.Fo rm.AllKeys)
{
//FOR SOME ODD REASON, THIS DOESN'T WORK:
//if (_key.IndexOf(C heckBoxList1.ID +
_sIndexDelim, 1) 0)
// BUT THIS WORKS (?)
if (_key.StartsWit h(CheckBoxList1 .ID +
_sIndexDelim))
{
_arrKey = new ArrayList();
_arrKey.AddRang e(Regex.Split(_ key,
_sIndexDelim)); // does not split!
string[] substrings = Regex.Split(_ke y,
_sIndexDelim); // does not split!
The values:
?_key
"CheckBoxList1$ 1"
?_sIndexDelim
"$"
?_arrKey[0]
"CheckBoxList1$ 1"
?_arrKey[1]
""
?substrings[0]
"CheckBoxList1$ 1"
?substrings[1]
""
Any ideas why this is happening?
Thanks
Comment