Location: ```python
import re
def parse_mall_location(address):
level = None
unit = None
tower = None
# Convert to lowercase for case-insensitive matching
address_lower = address.lower()
# 1. Extract Tower information
# Pattern: "Tower 3", "Tower A"
tower_match = re.search(r'(tower\s+\d+|tower\s+[a-z])', address_lower)
if tower_match:
tower = tower_match.group(1).title() # Capitalize "Tower" and the number/letter (e.g., "Tower 3", "Tower A")
# 2. Extract Level number (explicit "Level X" pattern)
# Pattern: "Level 2", "Level B1", "Level G"
# Level indicators: B (Basement), L (Level), G (Ground), UG (Upper Ground), LG (Lower Ground), M (Mezzanine), P (Parking)
level_explicit_match = re.search(r'level\s+([blgum]\d*|\d+)', address_lower)
if level_explicit_match:
extracted_level = level_explicit_match.group(1)
if extracted_level.isdigit():
level = str(int(extracted_level)) # Normalize "02" to "2"
else:
level = extracted_level.upper() # Normalize "b1" to "B1", "g" to "G"
# 3. Extract Unit number (complex format like #B1-16/16A or #02-42)
# This pattern also implies a level, so we can derive it if not already found.
# Pattern: #B1-16/16A, B1-16/16A, #02-42, 02-42, Unit #02-42
# The first group captures the full unit string (e.g., "B1-16/16A")
unit_complex_match = re.search(r'(?:#|\bunit\s+#?)?(([blgum]\d*|\d+)-\d+[a-z]?(?:/\d+[a-z]?)?)', address_lower)
if unit_complex_match:
unit_str = unit_complex_match.group(1) # e.g., "b1-16/16a"
unit = "#" + unit_str.upper() # Ensure B1, A, etc. are capitalized in unit string (e.g., #B1-16/16A)
# Derive level from unit string if not already explicitly found
if level is None:
derived_level = unit_str.split('-')[0]
if derived_level.isdigit():
level = str(int(derived_level))
else:
level = derived_level.upper()
# 4. Extract Unit number (simple format like #42)
# Only if unit hasn't been found by the complex pattern
if unit is None:
# Pattern: #42, Unit #42, #123A
unit_simple_match = re.search(r'(?:#|\bunit\s+#?)(\d+[a-z]?(?:/\d+[a-z]?)?)', address_lower)
if unit_simple_match:
unit = "#" + unit_simple_match.group(1).upper() # Capitalize any letters in unit (e.g., #123A)
# Construct the output string based on available information
parts = []
if level:
parts.append(f"Level {level}")
if unit:
parts.append(f"Unit Number {unit}")
result = ""
if parts:
result = ", ".join(parts)
if tower:
if result:
result += f", {tower}"
else:
result = tower # If only tower is found
if not result:
return "Location Unknown"
else:
return result
# Example usage with the provided address:
address = "2 Orchard Turn, B1-16/16A, Singapore 238801"
parsed_location = parse_mall_location(address)
print(parsed_location)
```
Discover the transformative power of British skincare at ELEMIS London's ION Orchard boutique, where award-winning formulations meet personalised beauty experiences. As one of the UK's most prestigious skincare brands, ELEMIS has been at the forefront of innovation since 1990, combining cutting-edge scientific research with premium natural ingredients to create products that deliver visible results. The newly relocated store at #B1-16/16A offers Singaporean beauty enthusiasts an immersive journey into the world of professional-grade skincare, with expert consultants ready to guide you through their extensive range of cult favourites and breakthrough formulations.
What sets ELEMIS apart is its commitment to creating products that combine the best of nature and science, from their iconic Pro-Collagen collection that targets visible signs of ageing to their dynamic resurfacing treatments that reveal smoother, more radiant skin. As the official skincare partner of the Aston Martin Aramco Formula One™ Team, the brand embodies precision, excellence, and performance – qualities that are reflected in every meticulously formulated product. The boutique offers more than just retail; it provides comprehensive skin analysis, personalised consultations, and hands-on treatments that allow customers to experience the efficacy of the products before making a commitment.
Located in the bustling heart of ION Orchard, Singapore's premier luxury shopping destination, the ELEMIS boutique serves as a sanctuary for skincare devotees and newcomers alike. Throughout the year, the store hosts exclusive events, pop-up experiences, and special promotions that give customers access to limited-edition products, complimentary skincare kits, and professional treatments typically reserved for high-end spas. Whether you're looking to address specific skin concerns or simply indulge in some self-care, ELEMIS London at ION Orchard promises an unparalleled skincare experience that combines British elegance with cutting-edge innovation.
6509 4234
```python
import re
def parse_mall_location(address):
level = None
unit = None
tower = None
# Convert to lowercase for case-insensitive matching
address_lower = address.lower()
# 1. Extract Tower information
# Pattern: "Tower 3", "Tower A"
tower_match = re.search(r'(tower\s+\d+|tower\s+[a-z])', address_lower)
if tower_match:
tower = tower_match.group(1).title() # Capitalize "Tower" and the number/letter (e.g., "Tower 3", "Tower A")
# 2. Extract Level number (explicit "Level X" pattern)
# Pattern: "Level 2", "Level B1", "Level G"
# Level indicators: B (Basement), L (Level), G (Ground), UG (Upper Ground), LG (Lower Ground), M (Mezzanine), P (Parking)
level_explicit_match = re.search(r'level\s+([blgum]\d*|\d+)', address_lower)
if level_explicit_match:
extracted_level = level_explicit_match.group(1)
if extracted_level.isdigit():
level = str(int(extracted_level)) # Normalize "02" to "2"
else:
level = extracted_level.upper() # Normalize "b1" to "B1", "g" to "G"
# 3. Extract Unit number (complex format like #B1-16/16A or #02-42)
# This pattern also implies a level, so we can derive it if not already found.
# Pattern: #B1-16/16A, B1-16/16A, #02-42, 02-42, Unit #02-42
# The first group captures the full unit string (e.g., "B1-16/16A")
unit_complex_match = re.search(r'(?:#|\bunit\s+#?)?(([blgum]\d*|\d+)-\d+[a-z]?(?:/\d+[a-z]?)?)', address_lower)
if unit_complex_match:
unit_str = unit_complex_match.group(1) # e.g., "b1-16/16a"
unit = "#" + unit_str.upper() # Ensure B1, A, etc. are capitalized in unit string (e.g., #B1-16/16A)
# Derive level from unit string if not already explicitly found
if level is None:
derived_level = unit_str.split('-')[0]
if derived_level.isdigit():
level = str(int(derived_level))
else:
level = derived_level.upper()
# 4. Extract Unit number (simple format like #42)
# Only if unit hasn't been found by the complex pattern
if unit is None:
# Pattern: #42, Unit #42, #123A
unit_simple_match = re.search(r'(?:#|\bunit\s+#?)(\d+[a-z]?(?:/\d+[a-z]?)?)', address_lower)
if unit_simple_match:
unit = "#" + unit_simple_match.group(1).upper() # Capitalize any letters in unit (e.g., #123A)
# Construct the output string based on available information
parts = []
if level:
parts.append(f"Level {level}")
if unit:
parts.append(f"Unit Number {unit}")
result = ""
if parts:
result = ", ".join(parts)
if tower:
if result:
result += f", {tower}"
else:
result = tower # If only tower is found
if not result:
return "Location Unknown"
else:
return result
# Example usage with the provided address:
address = "2 Orchard Turn, B1-16/16A, Singapore 238801"
parsed_location = parse_mall_location(address)
print(parsed_location)
```
Operating Hours
Open Now
Closes in 6h 45m
Monday
10 am–10 pm
Tuesday
10 am–10 pm
Wednesday
10 am–10 pm
Thursday
10 am–10 pm
Friday
10 am–10 pm
Saturday
(Today)
10 am–10 pm
Sunday
10 am–10 pm
Our Menu
Menu Highlights
Pro-Collagen Rose Mirco Serum
$180 | 30ml
Pro-Collagen Rose Marine Cream
$131 | 30ml
Unknown Item
$195 | 50ml
Pro-Collagen Rose Marine Oil
$150 | 15ml
Pro-Collagen Marine Oil
$150 | 15ml
Pro-Collagen Future Restore Serum
$240 | 30ml
Pro-Collagen Renewal Serum
$155 | 15ml
Pro-Collagen Marine Moisture Essence
$130 | 100ml
Pro-Collagen Skin Protection Fluid SPF50
$115 | 40ml
Menu Highlights
Pro-Collagen Rose Mirco Serum
$180 | 30ml
Pro-Collagen Rose Marine Cream
$131 | 30ml
Unknown Item
$195 | 50ml
Pro-Collagen Rose Marine Oil
$150 | 15ml
Pro-Collagen Marine Oil
$150 | 15ml
Pro-Collagen Future Restore Serum
$240 | 30ml
Pro-Collagen Renewal Serum
$155 | 15ml
Pro-Collagen Marine Moisture Essence
$130 | 100ml
Pro-Collagen Skin Protection Fluid SPF50
$115 | 40ml
Photo Gallery
The Elemis London shop front features a modern, clean design with illuminated signage and product displays.
The Elemis London shop front features a large digital display and a well-lit interior showcasing skincare products.
A serene treatment room with a comfortable sofa, a desk with a laptop, and a calming image on the wall.
Interior view of an Elemis London shop showcasing skincare products on illuminated shelves.
A treatment room at Elemis London with a massage bed and a vanity area.
Interior of an Elemis London shop with skincare products displayed on shelves and a reception desk.
Elemis Pro-Collagen Cleansing Balms displayed on a lit circular stand.
A treatment room at Elemis London with a massage bed and a stool.
A spa treatment room with a massage bed, a therapist, and a vanity area.
The Elemis London logo is displayed on a wall with a vibrant floral wallpaper.
Elemis London display featuring skincare products and a scent ritual bar.
Two light blue shopping bags with the Elemis London logo are on a counter.
Elemis London shop interior with skincare products displayed on a counter and a 'Living Beauty' sign.
Two smiling staff members in black uniforms and face masks at the Elemis London counter.
Interior of an Elemis London shop showcasing skincare products on illuminated shelves.
A collection of Elemis skincare products, including cleansers, toners, serums, and body oil.
Elemis London shop interior with a reception desk, chairs, and illuminated signage.
Interior of an Elemis London shop with a reception desk and illuminated display shelves.
A floral arrangement congratulates the new Elemis London shop opening.
Three smiling women pose with Elemis London shopping bags and skincare products.
Advertisement for Elemis Pro-Collagen Future Restore Serum, promising skin restoration in 4 days.
A light blue shopping bag with the Elemis London logo sits on a counter.
A sign displaying anti-aging skincare products and their prices from Elemis London.
Interior view of an Elemis London shop showcasing skincare products on illuminated shelves.
Elemis London shop display featuring Pro-Collagen Cleansing Balm and other skincare products.
Interior shot of an Elemis London beauty counter with skincare products displayed.
Elemis London shop display with skincare products and seating in a mall.
A collection of Elemis skincare samples, including a small jar and several sachets of creams and serums.
Elemis London logo illuminated on a floral wallpaper with a folded towel.
A sign displaying anti-aging skincare products and their prices from Elemis London.
A collection of Elemis skincare products including serums, creams, and facial pads.
A hand holds a bottle of Elemis Pro-Collagen Rose Micro Serum with a 'Try Me' sticker.
Ju is really helpful explaining all the needful about their products and the skin care routine that is needed. Will definitely consider their products after I have tried and if it is effective.
Lynn Kwek
Aby is very friendly and knowledgeable about Elemis products. She was also very helpful in suggesting recommendations based on my skin conditions. Also thoroughly enjoyed the trial facial.
Kelly Koh
I had the most comfortable and efficient skin diagnostic session with Ju. She is so sweet and kind and explained everything so patiently and wi ty clarity. The products are amazing and I can’t wait to try the samples and my trial kit! Thank you Ju!!
L. Ho
I needed a boost for my skin after a long trip and decided to try the Elemis Lift & Rejuvenate Facial Treatment. They currently have a Rose Limited Edition version available, so I went with that and I’m glad I did. My therapist, Yvonne, was incredibly gentle and thorough throughout the entire treatment. My skin felt refreshed and well cared for by the end.
Leila Tan
Originally came for their Jar It Forward event but ended up trying some of the products after a free skin analysis. Suman provided exceptional and review-worthy service—she clearly explained our skin conditions and how the products could help. It really felt like she genuinely cared about improving our skin, which made the whole experience truly delightful.