Ideone.com requires JavaScript to work.
fork(4) download loading...
  1. import re
  2. # import regex # if you like good times
  3. # intended to replace `re`, the regex module has many advanced
  4. # features for regex lovers. http://p...content-available-to-author-only...n.org/pypi/regex
  5. subject = 'Jane"" ""Tarzan12"" Tarzan11@Tarzan22 {4 Tarzan34}'
  6. regex = re.compile(r'{[^}]+}|"Tarzan\d+"|(Tarzan\d+)')
  7. # put Group 1 captures in a list
  8. matches = [group for group in re.findall(regex, subject) if group]
  9. ######## The four main tasks we're likely to have ########
  10. # Task 1: Is there a match?
  11. print("*** Is there a Match? ***")
  12. if len(matches)>0:
  13. print ("Yes")
  14. else:
  15. print ("No")
  16. # Task 2: How many matches are there?
  17. print("\n" + "*** Number of Matches ***")
  18. print(len(matches))
  19. # Task 3: What is the first match?
  20. print("\n" + "*** First Match ***")
  21. if len(matches)>0:
  22. print (matches[0])
  23. # Task 4: What are all the matches?
  24. print("\n" + "*** Matches ***")
  25. if len(matches)>0:
  26. for match in matches:
  27. print (match)
  28. # Task 5: Replace the matches
  29. def myreplacement(m):
  30. if m.group(1):
  31. return "Superman"
  32. else:
  33. return m.group(0)
  34. replaced = regex.sub(myreplacement, subject)
  35. print("\n" + "*** Replacements ***")
  36. print(replaced)
  37. # Task 6: Split
  38. # Start by replacing by something distinctive,
  39. # as in Step 5. Then split.
  40. splits = replaced.split('Superman')
  41. print("\n" + "*** Splits ***")
  42. for split in splits:
  43. print (split)
aW1wb3J0IHJlCiMgaW1wb3J0IHJlZ2V4ICMgaWYgeW91IGxpa2UgZ29vZCB0aW1lcwojIGludGVuZGVkIHRvIHJlcGxhY2UgYHJlYCwgdGhlIHJlZ2V4IG1vZHVsZSBoYXMgbWFueSBhZHZhbmNlZAojIGZlYXR1cmVzIGZvciByZWdleCBsb3ZlcnMuIGh0dHA6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5uLm9yZy9weXBpL3JlZ2V4CnN1YmplY3QgPSAnSmFuZSIiICIiVGFyemFuMTIiIiBUYXJ6YW4xMUBUYXJ6YW4yMiB7NCBUYXJ6YW4zNH0nCnJlZ2V4ID0gcmUuY29tcGlsZShyJ3tbXn1dK318IlRhcnphblxkKyJ8KFRhcnphblxkKyknKQojIHB1dCBHcm91cCAxIGNhcHR1cmVzIGluIGEgbGlzdAptYXRjaGVzID0gW2dyb3VwIGZvciBncm91cCBpbiByZS5maW5kYWxsKHJlZ2V4LCBzdWJqZWN0KSBpZiBncm91cF0KCiMjIyMjIyMjIFRoZSBmb3VyIG1haW4gdGFza3Mgd2UncmUgbGlrZWx5IHRvIGhhdmUgIyMjIyMjIyMKCiMgVGFzayAxOiBJcyB0aGVyZSBhIG1hdGNoPwpwcmludCgiKioqIElzIHRoZXJlIGEgTWF0Y2g/ICoqKiIpCmlmIGxlbihtYXRjaGVzKT4wOgoJcHJpbnQgKCJZZXMiKQplbHNlOgoJcHJpbnQgKCJObyIpCgojIFRhc2sgMjogSG93IG1hbnkgbWF0Y2hlcyBhcmUgdGhlcmU/CnByaW50KCJcbiIgKyAiKioqIE51bWJlciBvZiBNYXRjaGVzICoqKiIpCnByaW50KGxlbihtYXRjaGVzKSkKCiMgVGFzayAzOiBXaGF0IGlzIHRoZSBmaXJzdCBtYXRjaD8KcHJpbnQoIlxuIiArICIqKiogRmlyc3QgTWF0Y2ggKioqIikKaWYgbGVuKG1hdGNoZXMpPjA6CglwcmludCAobWF0Y2hlc1swXSkKCQojIFRhc2sgNDogV2hhdCBhcmUgYWxsIHRoZSBtYXRjaGVzPwpwcmludCgiXG4iICsgIioqKiBNYXRjaGVzICoqKiIpCmlmIGxlbihtYXRjaGVzKT4wOgoJZm9yIG1hdGNoIGluIG1hdGNoZXM6CgkgICAgcHJpbnQgKG1hdGNoKQoJCQojIFRhc2sgNTogUmVwbGFjZSB0aGUgbWF0Y2hlcwpkZWYgbXlyZXBsYWNlbWVudChtKToKICAgIGlmIG0uZ3JvdXAoMSk6CiAgICAgICAgcmV0dXJuICJTdXBlcm1hbiIKICAgIGVsc2U6CiAgICAgICAgcmV0dXJuIG0uZ3JvdXAoMCkKcmVwbGFjZWQgPSByZWdleC5zdWIobXlyZXBsYWNlbWVudCwgc3ViamVjdCkKcHJpbnQoIlxuIiArICIqKiogUmVwbGFjZW1lbnRzICoqKiIpCnByaW50KHJlcGxhY2VkKQoKIyBUYXNrIDY6IFNwbGl0CiMgU3RhcnQgYnkgcmVwbGFjaW5nIGJ5IHNvbWV0aGluZyBkaXN0aW5jdGl2ZSwKIyBhcyBpbiBTdGVwIDUuIFRoZW4gc3BsaXQuCnNwbGl0cyA9IHJlcGxhY2VkLnNwbGl0KCdTdXBlcm1hbicpCnByaW50KCJcbiIgKyAiKioqIFNwbGl0cyAqKioiKQpmb3Igc3BsaXQgaW4gc3BsaXRzOgoJICAgIHByaW50IChzcGxpdCk=
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
*** Is there a Match? ***
Yes
*** Number of Matches ***
2
*** First Match ***
Tarzan11
*** Matches ***
Tarzan11
Tarzan22
*** Replacements ***
Jane"" ""Tarzan12"" Superman@Superman {4 Tarzan34}
*** Splits ***
Jane"" ""Tarzan12"" 
@
 {4 Tarzan34}
https://ideone.com/cWP7AE
language:
Python (cpython 2.7.16)
created:
11 years ago
visibility:
public

Share or Embed source code

Discover > Sphere Engine API

The brand new service which powers Ideone!

Discover > IDE Widget

Widget for compiling and running the source code in a web browser!

AltStyle によって変換されたページ (->オリジナル) /