471,354 Members | 1,784 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,354 software developers and data experts.

Regex homeworks

i have 2 homeworks

i have to make 2 functions

1. to extract all words with literal doubled

example
text = "use the foot to hit the ball and score a goooal, and be happy."
with
print re.findall(r'XXX',text)
have to return foot,ball,gooal,happy

2. to extract all names

text = """Ms and Mr Smith decided to visit Mrs Ann Anderson. When they crossed
the Mraselrow Street they met Somebody; it was the well known Dr Jones. They talked
about Dr Ali Baba and his 40 Assistants. Mr Nada was nowhere to be found, but
Ms Rosette Rose, Ms R Fitzgeral and Mr Van Der Valt were Ok
."""

print re.findall(r'XXX',text)
shoult print

Smith, Ann Anderson, Jones, Ali Baba, Nada, Rosette Rose, R Fitzgeral, Van Der Valt
Dec 8 '07 #1
5 1165
oler1s
671 Expert 512MB
The homework assignment looks straightforward to me. Was there a question you had about it, or the code you were writing?
Dec 9 '07 #2
print re.findall(r'XXX',text)

XXX - regexpression for print what i want
Dec 9 '07 #3
bvdet
2,851 Expert Mod 2GB
print re.findall(r'XXX',text)

XXX - regexpression for print what i want
Do you expect us to provide the answer to your homework? You cannot learn that way. Show us some effort to solve the problem on your own, and maybe someone can help you from there. Following is a way for problem #1 that seems a lot simpler than regex:
Expand|Select|Wrap|Line Numbers
  1. import string
  2. textList = text.split()
  3. results = []
  4. for word in textList:
  5.     for i, letter in enumerate(word):
  6.         try:
  7.             if word[i+1] == letter:
  8.                 results.append(word.strip(string.punctuation))
  9.                 break
  10.         except IndexError, e:
  11.             break
  12.  
  13. print results
Output:
>>> ['foot', 'ball', 'goooal', 'happy']
Dec 9 '07 #4
u don`t understand me
i have to print using reg expressions

like example here

Expand|Select|Wrap|Line Numbers
  1. import re
  2.  
  3. def find_thousand():
  4.     """
  5.     Write a regular expression that matches numbers
  6.     that are written using "'" as thousand separator:
  7.     >>> find_thousand()
  8.     124 1,234 4,321,434 234,231 987,654,321,333,551
  9.     """
  10.     text = """Go:124 is not 1,234 nor 1233 and  3,14 12,12 din 70,
  11.               definetly yes 4,321,434 div 234,231 987,654,321,333,551"""
  12.     f  =  re.findall(r''' (?<![\d,])                # it is not preceded by other digit or comma
  13.                           (\d{1,3}                  # has 1..3 digits
  14.                           (,\d{3})*)                # possibly followed by comma and groups of 3 digits
  15.                           (?![\d,])                 # and at the end has no other digit or comma
  16.                           ''', text, re.VERBOSE)
  17.     print " ".join([i[0] for i in f])
for my homework
[HTML]
def count_doubles():
"""
Find all the words that contain double letters inside them (or at the end)
For the provided text the routine should behave like this:
>>> count_doubles()
foot, ball, goooal, happy
"""
text = "use the foot to hit the ball and score a goooal, and be happy. i i i'll go."[/HTML]

I have to make my homework only with regular expression
Dec 9 '07 #5
bvdet
2,851 Expert Mod 2GB
u don`t understand me
i have to print using reg expressions

like example here

Expand|Select|Wrap|Line Numbers
  1. import re
  2.  
  3. def find_thousand():
  4.     """
  5.     Write a regular expression that matches numbers
  6.     that are written using "'" as thousand separator:
  7.     >>> find_thousand()
  8.     124 1,234 4,321,434 234,231 987,654,321,333,551
  9.     """
  10.     text = """Go:124 is not 1,234 nor 1233 and  3,14 12,12 din 70,
  11.               definetly yes 4,321,434 div 234,231 987,654,321,333,551"""
  12.     f  =  re.findall(r''' (?<![\d,])                # it is not preceded by other digit or comma
  13.                           (\d{1,3}                  # has 1..3 digits
  14.                           (,\d{3})*)                # possibly followed by comma and groups of 3 digits
  15.                           (?![\d,])                 # and at the end has no other digit or comma
  16.                           ''', text, re.VERBOSE)
  17.     print " ".join([i[0] for i in f])
for my homework
[HTML]
def count_doubles():
"""
Find all the words that contain double letters inside them (or at the end)
For the provided text the routine should behave like this:
>>> count_doubles()
foot, ball, goooal, happy
"""
text = "use the foot to hit the ball and score a goooal, and be happy. i i i'll go."[/HTML]

I have to make my homework only with regular expression
I understood you. You did not understand me. We cannot provide answers to homework questions.
Dec 9 '07 #6

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

9 posts views Thread by Tim Conner | last post: by
20 posts views Thread by jeevankodali | last post: by
17 posts views Thread by clintonG | last post: by
6 posts views Thread by Extremest | last post: by
7 posts views Thread by Extremest | last post: by
3 posts views Thread by aspineux | last post: by
15 posts views Thread by morleyc | last post: by
reply views Thread by Karch | last post: by

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.