Identifying if a character in a field is a number or text
I have a row that contains model numbers such as:
YM103Kl - (model category would be YM and capacity is 103)
YAC24LT (YAC and 24)
NC33KLT (NC and 33)
I'm trying to figure out how to extract the initial letters (2 or 3 depending on the model) to identify the model category and the subsequent numbers (single to triple digits) to identify the capacity.
And I notice Domo doesn't appear to have an isnumeric function. Can anyone advise on how to do this?
Best Answer
-
You can use a formula tile in a magic ETL to extract the first X letters and then the following numbers with the REGEXP_REPLACE function:
Model Category
REGEXP_REPLACE(`field`, '^(\D+).*$', '$1')
Capacity:
REGEXP_REPLACE(`field`, '^\D+(\d+).*$', '$1')
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Answers
-
You can use a formula tile in a magic ETL to extract the first X letters and then the following numbers with the REGEXP_REPLACE function:
Model Category
REGEXP_REPLACE(`field`, '^(\D+).*$', '$1')
Capacity:
REGEXP_REPLACE(`field`, '^\D+(\d+).*$', '$1')
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0 -
Wow @GrantSmith ! Thanks!
0 -
Also, if you want to check if something is numeric you can use a regular expression here as well:
CASE WHEN REGEXP_MATCH(`field`, '^\d+$') THEN 'Numeric' ELSE 'Non-Numeric' END
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0 -
@GrantSmith now I have a request to identify the value following the Capacity (that you determined above). So for example, with "YM103Kl"
I'd want to identify "K".
Can you help me with that regexp formula? thanks!
0 -
You can use the same regular expression for all parts of your string and just use a different matching group:
Model category:
REGEXP_REPLACE(`field`, '^(\D+)(\d+)(\D).*$', '$1')
Capacity:
REGEXP_REPLACE(`field`, '^(\D+)(\d+)(\D).*$', '$2')
Multiplier:
REGEXP_REPLACE(`field`, '^(\D+)(\d+)(\D).*$', '$3')
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Categories
- All Categories
- 1.7K Product Ideas
- 1.7K Ideas Exchange
- 1.5K Connect
- 1.2K Connectors
- 292 Workbench
- 4 Cloud Amplifier
- 8 Federated
- 2.8K Transform
- 95 SQL DataFlows
- 602 Datasets
- 2.1K Magic ETL
- 3.7K Visualize
- 2.4K Charting
- 695 Beast Mode
- 43 App Studio
- 39 Variables
- 658 Automate
- 170 Apps
- 441 APIs & Domo Developer
- 42 Workflows
- 5 DomoAI
- 32 Predict
- 12 Jupyter Workspaces
- 20 R & Python Tiles
- 386 Distribute
- 111 Domo Everywhere
- 269 Scheduled Reports
- 6 Software Integrations
- 113 Manage
- 110 Governance & Security
- 8 Domo University
- 30 Product Releases
- Community Forums
- 39 Getting Started
- 29 Community Member Introductions
- 98 Community Announcements
- Domo Community Gallery
- 4.8K Archive