@hannah_hortlik wrote:
But when I change it to
new=^^prxmatch('/~E\d{2}~/', '~'||catx('~',main_3,of code_sd:)||'~');
then it worked correct, cause the codes in the table I tried it out only have 2 numbers (So E12, E14, ...). But in other data the codes have 3 numbers (E123) and the ones with 2 numbers are not count when I use your code.
So using your code, only exact the values with 3 numbers are included. But I also want to count those with 2 numbers. (E123, E15, E12, E155, all of these and then as result get the number 4, cause EXXX is there 4 times)
I'm not surprised. Let's just review the specifications (highlighting added) ...
@hannah_hortlik wrote:
Now I want to check multiple values, so not only the value 'E123', but also 'E000', 'E001', up to 'E999'.
... and the claim I made regarding my code (again, highlighting added):
@FreelanceReinh wrote:
Then the PRXMATCH function searches for the pattern ~Eddd~, where "d" stands for a digit, (...) If the pattern was found, we can conclude that at least one of the 90 variables must contain one of the 1000 values 'E000', 'E001', ..., 'E999'. Note that a value such as 'E45a' would not satisfy the condition (unlike the range condition mentioned by Tom).
Thanks to the flexibility of Perl regular expressions it's very easy to adapt the search pattern to the new specification "match codes of the forms Edd and Eddd, where d stands for a digit (0, 1, ..., 9)":
/~E\d{2,3}~/
Similarly, you could change it to /~E\d{1,3}~/ in order to include the ten codes E0, E1, ..., E9 (in addition to the 1100 codes E00, ..., E99, E000, ..., E999). The two numbers in the curly braces specify the minimum and maximum number of digits to be matched, respectively. So, it's up to you to adjust these parameters to your needs.
... View more