NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-04-24-01KQ036YC8J7ZE7STADT5JGJ47
Run Details
Model:
Z.AI GLM 4.5 Air
Test:
Data extraction
Scenario:
All valid emails
Duration:
2m
Cost:
$0.009670
Provider:
Z.AI
Evaluation summary
Score
Evaluator
Details Link
Pass
Contains a list of texts
(details)
Model input
User/Human
Extract all valid email addresses from the text. Return them in a comma-separated list without spaces. Contact information: 1. John Doe - john.doe@example.com 2. Jane Smith - jane@smith-family.net 3. support@company.co.uk 4. info@subdomain.example.org 5. Invalid email: not.an.email.com 6. Another invalid: @missing-username.com
Model response
Messages
Meta
AI
To solve this problem, we need to extract all valid email addresses from a given text. The valid email addresses are those that conform to the standard email format, which includes a local part followed by '@' and a domain part. The domain part must end with a top-level domain (TLD) consisting of at least two letters. Invalid email addresses, as marked in the text, should be excluded. ### Approach 1. **Regular Expression for Valid Emails**: We use a regular expression to match valid email addresses. The pattern is designed to ensure: - The local part (before '@') consists of word characters (letters, digits, underscores), dots, or hyphens. - The domain part (after '@') consists of one or more subdomains followed by a dot and a TLD. Each subdomain can include word characters, dots, or hyphens. The TLD must be at least two letters long. 2. **Processing the Text**: The text is scanned using the regular expression to find all matches, which correspond to valid email addresses. 3. **Output**: The extracted email addresses are joined into a comma-separated string without any spaces. ### Solution Code ```python import re text = """Contact information: 1. John Doe -
john.doe@example.com
2. Jane Smith -
jane@smith-family.net
3.
support@company.co.uk
4.
info@subdomain.example.org
5. Invalid email: not.an.email.com 6. Another invalid: @missing-username.com""" pattern = r'[\w\.-]+@([\w\.-]+\.)+[a-zA-Z]{2,}' emails = re.findall(pattern, text) result = ','.join(emails) print(result) ``` ### Explanation 1. **Regular Expression Pattern**: The pattern `[\w\.-]+@([\w\.-]+\.)+[a-zA-Z]{2,}` breaks down as follows: - `[\w\.-]+`: Matches the local part of the email, allowing word characters, dots, and hyphens. - `@`: Matches the '@' symbol literally. - `([\w\.-]+\.)+`: Matches one or more subdomains, each consisting of word characters, dots, or hyphens followed by a dot. - `[a-zA-Z]{2,}`: Matches the TLD, which must be at least two letters long. 2. **Finding Matches**: The `re.findall` function scans the text for all occurrences that match the pattern, returning a list of valid email addresses. 3. **Result Construction**: The list of email addresses is joined into a single string separated by commas, with no spaces between them. This results in the output: `
john.doe@example.com
,
jane@smith-family.net
,
support@company.co.uk
,
info@subdomain.example.org
`. This approach efficiently extracts valid email addresses while excluding invalid ones as specified, leveraging regular expressions for precise pattern matching.
created_at
"2026-04-24T15:54:52.178Z"
4/24/2026, 3:54:52 PM
model
"z-ai/glm-4.5-air"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
1280
moderation_latency
(null)
generation_time
119903
tokens_prompt
89
tokens_completion
8771
native_tokens_prompt
86
native_tokens_completion
8776
native_tokens_completion_images
(null)
native_tokens_reasoning
8105
native_tokens_cached
4
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
num_fetches
(null)
web_search_engine
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"stop"
usage
0.00967012
router
(null)
provider_responses
0
endpoint_id
"c8760514-8a81-4a73-ae2c-be4942ba93f3"
id
"20260424235452c0308ffd6ead43b3"
is_byok
false
latency
1280
model_permaslug
"z-ai/glm-4.5-air"
provider_name
"Z.AI"
status
200
user_agent
"langchainjs-openai/1.0.0 ((node/v24.14.1; linux; x64))"
http_referer
(null)
request_id
"req-1777046092-MCrfy9jCME30LaZr6WUU"
session_id
(null)
api_type
"completions"
id
"gen-1777046092-WF7ENv4xUBILN2OgJxMj"
upstream_id
"20260424235452c0308ffd6ead43b3"
total_cost
0.00967012
cache_discount
6.8e-7
upstream_inference_cost
0
provider_name
"Z.AI"
response_cache_source_id
(null)
Evaluation details
Result
Evaluator
Details
Meta Data
Pass
Contains a list of texts
john.doe@example.com jane@smith-family.net support@company.co.uk info@subdomain.example.org
john.doe@example.com
true
jane@smith-family.net
true
support@company.co.uk
true
info@subdomain.example.org
true