I'm trying to make a suvat calculator so one can input decimals, a letter (e.g., S) and a question mark if you do not have a value.
Tests that will be valid include "2.3", "S", "?" but not values like "2.5s", "??", etc (only one type, can't have decimals AND a letter in the same input box)
Is there a regex expression for this? So far I have only got the regex for the decimal number:
^[0-9]\\d*(\\.\\d )
I did also try a way simpler one but I would like a more developed expression for later on.
[0-9sS.?]
CodePudding user response:
You can use
@"^(?:[0-9] (?:\.[0-9] )?|[A-Za-z?])\z"
Details:
^- start of string(?:- start of a non-capturing group:[0-9]- one or more ASCII digits(?:\.[0-9] )?- an optional occurrence of.and one or more ASCII digits
|- or[A-Za-z?]- an ASCII letter or?char
)- end of the group\z- the very end of string.
See a .NET regex demo online.
CodePudding user response:
if i got your use case right, then this might work:
^(\?|(\d \.?\d )|\S)$
Read it as: The word contains either one question mark, or a numeric value with propably a dot and numbers behind that or a single letter
You can try it our here: https://regex101.com/r/wLGJhJ/1
