ure1.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. try:
  2. import ure as re
  3. except ImportError:
  4. try:
  5. import re
  6. except ImportError:
  7. print("SKIP")
  8. raise SystemExit
  9. r = re.compile(".+")
  10. m = r.match("abc")
  11. print(m.group(0))
  12. try:
  13. m.group(1)
  14. except IndexError:
  15. print("IndexError")
  16. # conversion of re and match to string
  17. str(r)
  18. str(m)
  19. r = re.compile("(.+)1")
  20. m = r.match("xyz781")
  21. print(m.group(0))
  22. print(m.group(1))
  23. try:
  24. m.group(2)
  25. except IndexError:
  26. print("IndexError")
  27. r = re.compile("[a-cu-z]")
  28. m = r.match("a")
  29. print(m.group(0))
  30. m = r.match("z")
  31. print(m.group(0))
  32. m = r.match("d")
  33. print(m)
  34. m = r.match("A")
  35. print(m)
  36. print("===")
  37. r = re.compile("[^a-cu-z]")
  38. m = r.match("a")
  39. print(m)
  40. m = r.match("z")
  41. print(m)
  42. m = r.match("d")
  43. print(m.group(0))
  44. m = r.match("A")
  45. print(m.group(0))
  46. print("===")
  47. # '-' character within character class block
  48. print(re.match("[-a]+", "-a]d").group(0))
  49. print(re.match("[a-]+", "-a]d").group(0))
  50. print("===")
  51. r = re.compile("o+")
  52. m = r.search("foobar")
  53. print(m.group(0))
  54. try:
  55. m.group(1)
  56. except IndexError:
  57. print("IndexError")
  58. m = re.match(".*", "foo")
  59. print(m.group(0))
  60. m = re.search("w.r", "hello world")
  61. print(m.group(0))
  62. m = re.match('a+?', 'ab'); print(m.group(0))
  63. m = re.match('a*?', 'ab'); print(m.group(0))
  64. m = re.match('^ab$', 'ab'); print(m.group(0))
  65. m = re.match('a|b', 'b'); print(m.group(0))
  66. m = re.match('a|b|c', 'c'); print(m.group(0))
  67. # Case where anchors fail to match
  68. r = re.compile("^b|b$")
  69. m = r.search("abc")
  70. print(m)
  71. try:
  72. re.compile("*")
  73. except:
  74. print("Caught invalid regex")
  75. # bytes objects
  76. m = re.match(rb'a+?', b'ab'); print(m.group(0))