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.8K Product Ideas
- 1.8K Ideas Exchange
- 1.5K Connect
- 1.2K Connectors
- 300 Workbench
- 6 Cloud Amplifier
- 8 Federated
- 2.9K Transform
- 100 SQL DataFlows
- 616 Datasets
- 2.2K Magic ETL
- 3.8K Visualize
- 2.5K Charting
- 731 Beast Mode
- 55 App Studio
- 40 Variables
- 682 Automate
- 175 Apps
- 451 APIs & Domo Developer
- 46 Workflows
- 10 DomoAI
- 35 Predict
- 14 Jupyter Workspaces
- 21 R & Python Tiles
- 394 Distribute
- 113 Domo Everywhere
- 275 Scheduled Reports
- 6 Software Integrations
- 122 Manage
- 119 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 10 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 107 Community Announcements
- 4.8K Archive