tags:

views:

60

answers:

4

What is the regex to match a string with at least one period and no spaces?

+7  A: 

You can use this :

/^\S*\.\S*$/

It works like this :

^    <-- Starts with
  \S   <-- Any character but white spaces (notice the upper case) (same as [^ \t\r\n])
  *    <-- Repeated but not mandatory
  \.   <--  A period
  \S   <-- Any character but white spaces
  *    <-- Repeated but not mandatory
$    <-- Ends here

You can replace \S by [^ ] to work strictly with spaces (not with tabs etc.)

Colin Hebert
+2  A: 

Something like

 ^[^ ]*\.[^ ]*$

(match any non-spaces, then a period, then some more non-spaces)

Paul
A: 

Try this:

/^\S*\.\S*$/
ar
+2  A: 

no need regular expression. Keep it simple

>> s="test.txt"
=> "test.txt"
>> s["."] and s.count(" ")<1
=> true
>> s="test with spaces.txt"
=> "test with spaces.txt"
>> s["."] and s.count(" ")<1
=> false
ghostdog74