I would like to build a regular expression for replacing a sentence with "per" when it should be (a readable version of a sentence with quantities).
That is:
- "3/unit" must match
- "unit/3" must match
- "feet/second" must match
- "05/07" must not match
I know how to create something like "\D+/\D+".
But how can I build a regex saying "not both right and left expressions match \D+" ?
>Solution :
You can use
^(?![0-9]+/[0-9]+$)[^/]+/[^/]+$
See the regex demo. Details:
^– start of string(?![0-9]+/[0-9]+$)– a negative lookahead that fails the match if there are one or more digits,/, one or more digits and end of string position immediately to the right of the current location[^/]+/[^/]+– one or more chars other than/, a/char, and then one or more chars other than/$– end of string.