# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"Samsung(?=.*?Galaxy S)"
test_str = ("$data =\n"
"Array\n"
"(\n"
" [0] => Array\n"
" (\n"
" [name] => Samsung GT-N7100 Galaxy Note II 16GB\n"
" )\n\n"
" [1] => Array\n"
" (\n"
" [name] => Samsung GT-i9100 Galaxy S II\n"
" )\n\n"
" [2] => Array\n"
" (\n"
" [name] => Samsung GT-i9300 Galaxy S III 16GB\n"
" )\n\n"
" [3] => Array\n"
" (\n"
" [name] => Apple iPhone 5 16GB\n"
" )\n\n"
" [4] => Array\n"
" (\n"
" [name] => Samsung GT-P5110 Galaxy S 4 10.1 16GB\n"
" )\n\n"
" [5] => Array\n"
" (\n"
" [name] => Samsung UE46ES6715\n"
" )\n\n"
" [6] => Array\n"
" (\n"
" [name] => Samsung 830 Series MZ-7PC128 128GB\n"
" )\n\n"
" [7] => Array\n"
" (\n"
" [name] => Samsung GT-N8000 Galaxy Note 10.1 16GB\n"
" )\n\n"
" [8] => Array\n"
" (\n"
" [name] => Samsung 830 Series MZ-7PC256 256GB\n"
" )\n\n"
" [9] => Array\n"
" (\n"
" [name] => Samsung UE46ES6715\n"
" )\n\n"
" [10] => Array\n"
" (\n"
" [name] => Samsung GT-2423 Galaxy Tab 4 10.1 16GB\n"
" )")
matches = re.finditer(regex, test_str, re.MULTILINE | re.IGNORECASE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html