'RegEx for String Validation [x_name1_zded|we3e_name2_235|yyy_name3_3435]
I have requirement to check, is getting valid input in the product
Example Product String = "x_name1_zded|we3e_name2_235|yyy_name3_3435"
each protect is delimited with "|".
each productInfo is delimited with "_"
in this example 3 products are there
1-> x_name1_zded
2-> we3e_name2_235
3-> yyy_name3_3435
and each product has 3 details, example product 1 id:x, name: name1, store: zded.
i need RegEx to validate if we have delimited with "|", the minimum 3 section(id,name, store) should be there, user can send N number of product with "|". so RegEx should validate if product is there, than should have 3 section.
Iam trying to do it in Json schema validator, in pattern section
Solution 1:[1]
Suppose, each details section can contain a-z letters and 0-9 digits, at least 1 symbol. Detail section will be [a-z0-9]+. We have to have at least 3 section divided by _ - there is one section, then at least 2 sequences of "delimiter + section" (pseudocode):
section (delimiter section)*(2 or more times)
In regex a single product will be:
[a-z0-9]+(_[a-z0-9]+){2,}
Next. It can be N products. If N is any value greater or equals to 1 - then we can use the same schema:
product (delimiter product)*(zero or more times)
So final version of regex is:
[a-z0-9]+(_[a-z0-9]+){2,}(\|[a-z0-9]+(_[a-z0-9]+){2,})*
\| is escaped delimiter, because | is regex metasymbol. * means "zero or more times".
You can replace [a-z0-9]+ on any another regexp describes your details section.
For instance, see example.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
