473,811 Members | 2,038 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Regex help

I've been trying to get this going for awhile now, and need help. I've
done a regex object, and when I use IsMatch, it's behavior is quite weird.

I am trying to use Regex to make sure that a variable is only
alphanumeric (no strange characters).

Here's the code:

Regex regExp = new Regex("[a–zA–Z0–9_]*");

// note: _username is a HtmlInputText
if ( !(regExp.IsMatc h(_username.Val ue)) )
{
//should only go in here if _username contains non-alphanumeric
characters
}

Even if I put strange characters, such as []%^$#!@#, it never goes in
that if block. I've tried getting rid of the ! such as

if (regExp.IsMatch (_username.Valu e)) { //code }

and it always goes in this if block no matter what I input, wether it
contains only alphanumeric or non-alphanumeric.

Any ideas?

Nov 15 '05 #1
8 5603
The problem that you're seeing is because you're not constraining where the
regex can match. If you have something like:

####A#####

it will match the "A" part (though since it's a * match, it doesn't even
have to match one character to succeed).

If you add the ^ and $ anchors to your regex, it should work as you expect:
Regex regExp = new Regex("^[a–zA–Z0–9_]*$");
--
Eric Gunnerson

Visit the C# product team at http://www.csharp.net
Eric's blog is at http://blogs.gotdotnet.com/ericgu/

This posting is provided “AS IS” with no warranties, and confers no rights.
"Bibe" <m_*******@hotm ail.com> wrote in message
news:Bo******** **********@news 02.bloor.is.net .cable.rogers.c om... I've been trying to get this going for awhile now, and need help. I've
done a regex object, and when I use IsMatch, it's behavior is quite weird.

I am trying to use Regex to make sure that a variable is only
alphanumeric (no strange characters).

Here's the code:

Regex regExp = new Regex("[a–zA–Z0–9_]*");

// note: _username is a HtmlInputText
if ( !(regExp.IsMatc h(_username.Val ue)) )
{
//should only go in here if _username contains non-alphanumeric
characters
}

Even if I put strange characters, such as []%^$#!@#, it never goes in
that if block. I've tried getting rid of the ! such as

if (regExp.IsMatch (_username.Valu e)) { //code }

and it always goes in this if block no matter what I input, wether it
contains only alphanumeric or non-alphanumeric.

Any ideas?

Nov 15 '05 #2
The problem that you're seeing is because you're not constraining where the
regex can match. If you have something like:

####A#####

it will match the "A" part (though since it's a * match, it doesn't even
have to match one character to succeed).

If you add the ^ and $ anchors to your regex, it should work as you expect:
Regex regExp = new Regex("^[a–zA–Z0–9_]*$");
--
Eric Gunnerson

Visit the C# product team at http://www.csharp.net
Eric's blog is at http://blogs.gotdotnet.com/ericgu/

This posting is provided “AS IS” with no warranties, and confers no rights.
"Bibe" <m_*******@hotm ail.com> wrote in message
news:Bo******** **********@news 02.bloor.is.net .cable.rogers.c om... I've been trying to get this going for awhile now, and need help. I've
done a regex object, and when I use IsMatch, it's behavior is quite weird.

I am trying to use Regex to make sure that a variable is only
alphanumeric (no strange characters).

Here's the code:

Regex regExp = new Regex("[a–zA–Z0–9_]*");

// note: _username is a HtmlInputText
if ( !(regExp.IsMatc h(_username.Val ue)) )
{
//should only go in here if _username contains non-alphanumeric
characters
}

Even if I put strange characters, such as []%^$#!@#, it never goes in
that if block. I've tried getting rid of the ! such as

if (regExp.IsMatch (_username.Valu e)) { //code }

and it always goes in this if block no matter what I input, wether it
contains only alphanumeric or non-alphanumeric.

Any ideas?

Nov 15 '05 #3
>
If you add the ^ and $ anchors to your regex, it should work as you expect:
> Regex regExp = new Regex("^[a-zA-Z0-9_]*$");


or use + instead of * to avoid empty strings:

Regex regExp = new Regex("^[a-zA-Z0-9_]+$");
if (regExp.IsMatch (""))
{
Console.WriteLi ne("Matched empty string");
}
Nov 15 '05 #4
>
If you add the ^ and $ anchors to your regex, it should work as you expect:
> Regex regExp = new Regex("^[a-zA-Z0-9_]*$");


or use + instead of * to avoid empty strings:

Regex regExp = new Regex("^[a-zA-Z0-9_]+$");
if (regExp.IsMatch (""))
{
Console.WriteLi ne("Matched empty string");
}
Nov 15 '05 #5
I misread the OP. Nevermind my post.
"Michael Mayer" <mr*****@charte r.net> wrote in message
news:eI******** ******@tk2msftn gp13.phx.gbl...

If you add the ^ and $ anchors to your regex, it should work as
you expect:
> Regex regExp = new Regex("^[a-zA-Z0-9_]*$");


or use + instead of * to avoid empty strings:

Regex regExp = new Regex("^[a-zA-Z0-9_]+$");
if (regExp.IsMatch (""))
{
Console.WriteLi ne("Matched empty string");
}

Nov 15 '05 #6
I misread the OP. Nevermind my post.
"Michael Mayer" <mr*****@charte r.net> wrote in message
news:eI******** ******@tk2msftn gp13.phx.gbl...

If you add the ^ and $ anchors to your regex, it should work as
you expect:
> Regex regExp = new Regex("^[a-zA-Z0-9_]*$");


or use + instead of * to avoid empty strings:

Regex regExp = new Regex("^[a-zA-Z0-9_]+$");
if (regExp.IsMatch (""))
{
Console.WriteLi ne("Matched empty string");
}

Nov 15 '05 #7
Thanks alot to all of you that replied. Tu-Thach solution works great
for me, because any character that is non-numerical will be a match, and
I understand now what I was doing wrong from what Eric said.

I also tried Eric's way of doing it, and it dosen't seem to work. Like I
said, I do have a solution to my problem, but I'm trying to see why
Eric's solution isn't working. From what I understand, the anchors ^
and $ are saying that it should match anywhere from the end of the
string to the end of the string. Exactly what is this going to do for
me? Isn't it doing that anyway? Sorry if my questions seem stupid.

Here's what I was doing with Eric's way:

I added the not (^) so that any character that is not alphanumerical
would be a match. It also always goes it in the if block now.

Regex regExp = new Regex("^[^a–zA–Z0–9_]*$");
if (regExp.IsMatch (_username.Valu e))
{
// Error here.
}

Cheers.

Eric Gunnerson [MS] wrote:
The problem that you're seeing is because you're not constraining where the
regex can match. If you have something like:

####A#####

it will match the "A" part (though since it's a * match, it doesn't even
have to match one character to succeed).

If you add the ^ and $ anchors to your regex, it should work as you expect:
> Regex regExp = new Regex("^[a–zA–Z0–9_]*$");


Nov 15 '05 #8
Thanks alot to all of you that replied. Tu-Thach solution works great
for me, because any character that is non-numerical will be a match, and
I understand now what I was doing wrong from what Eric said.

I also tried Eric's way of doing it, and it dosen't seem to work. Like I
said, I do have a solution to my problem, but I'm trying to see why
Eric's solution isn't working. From what I understand, the anchors ^
and $ are saying that it should match anywhere from the end of the
string to the end of the string. Exactly what is this going to do for
me? Isn't it doing that anyway? Sorry if my questions seem stupid.

Here's what I was doing with Eric's way:

I added the not (^) so that any character that is not alphanumerical
would be a match. It also always goes it in the if block now.

Regex regExp = new Regex("^[^a–zA–Z0–9_]*$");
if (regExp.IsMatch (_username.Valu e))
{
// Error here.
}

Cheers.

Eric Gunnerson [MS] wrote:
The problem that you're seeing is because you're not constraining where the
regex can match. If you have something like:

####A#####

it will match the "A" part (though since it's a * match, it doesn't even
have to match one character to succeed).

If you add the ^ and $ anchors to your regex, it should work as you expect:
> Regex regExp = new Regex("^[a–zA–Z0–9_]*$");


Nov 15 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
4804
by: Dave | last post by:
I'm struggling with something that should be fairly simple. I just don't know the regext syntax very well, unfortunately. I'd like to parse words out of what is basically a boolean search string. It's actually the input string into a Microsoft Index Server search. The string will consist of words, perhaps enclosed in quotes or parentheses. I'd like to use Regex to pull out the words, or the phrases if the words are enclosed in quotes....
20
8122
by: jeevankodali | last post by:
Hi I have an .Net application which processes thousands of Xml nodes each day and for each node I am using around 30-40 Regex matches to see if they satisfy some conditions are not. These Regex matches are called within a loop (like if or for). E.g. for(int i = 0; i < 10; i++) { Regex r = new Regex();
17
3984
by: clintonG | last post by:
I'm using an .aspx tool I found at but as nice as the interface is I think I need to consider using others. Some can generate C# I understand. Your preferences please... <%= Clinton Gallagher http://forta.com/books/0672325667/
7
2235
by: Mike Labosh | last post by:
I have the following System.Text.RegularExpressions.Regex that is supposed to remove this predefined list of garbage characters from contact names that come in on import files : Dim _dropContactGarbage As New Regex( _ "(+)|" & _ "(+)|" & _ "(+)|" & _ "(+)|" & _ "(+)|" & _
9
2095
by: jmchadha | last post by:
I have got the following html: "something in html ... etc.. city1... etc... <a class="font1" href="city1.html" onclick="etc."click for <b>info</bon city1 </a> ... some html. city1.. can repeat lot of times here.... Requirement: ------------------- I want to get the value of "href" i.e "city1.html" by searching "city1" between the <a</atag. Please note that "city1" can repeat lot of
4
2649
by: Chris | last post by:
Hi Everyone, I am using a regex to check for a string. When all the file contains is my test string the regex returns a match, but when I embed the test string in the middle of a text file a match is never returned. The string that I give to the regex is one that contains the entire contents of a text file. I'm using the multi-line option and I've also tried stripping out the VbCr
7
2592
by: Extremest | last post by:
I am using this regex. static Regex paranthesis = new Regex("(\\d*/\\d*)", RegexOptions.IgnoreCase); it should find everything between parenthesis that have some numbers onyl then a forward slash then some numbers. For some reason I am not getting that. It won't work at all in 2.0
6
4219
by: Phil Barber | last post by:
I am using Regex to validate a file name. I have everything I need except I would like the dot(.) in the filename only to appear once. My question is it possible to allow one instance of character but not two or more? example myfile.doc = good My.file.doc = not good if you could give an example of the expression pattern that would most helpful. thanks phil
1
12219
by: jonnyboy6969 | last post by:
Hi All Really hoping someone can help me out here with my deficient regex skills :) I have a function which takes a string of HTML and replaces a term (word or phrase) with a link. The pupose is that I seek out terms which are in a glossary on our site, and automatically link to this definition. Its slightly complex becase certain elements have to be ignored, for exampleI dont want to add links within existing links, or for example link...
0
1634
by: Support Desk | last post by:
That’s it exactly..thx -----Original Message----- From: Reedick, Andrew Sent: Tuesday, June 03, 2008 9:26 AM To: Support Desk Subject: RE: regex help The regex will now skip anything with an '@'in the filename on the assumption it's already in the correct format. Uncomment the os.rename line
0
10648
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10389
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10135
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7670
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6890
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5554
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4339
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3867
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3018
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.