我的问题是我需要检查一个字符串,如果它只包含以下任意数量的字符:任何数字 0-9这些 - + 中的任何字符。\ * 和一个空格如果它包含任何其他字符,则该字符串无效,正则表达式应捕获它。我尝试了以下正则表达式,但不幸的是,它不起作用,我被卡住了。"[^0-9 ,.\\-+*]"例如:1 * 2.4324 应该是正确的,但 1 & 2.3231 不应该提前谢谢。
1 回答
ITMISS
TA贡献1871条经验 获得超8个赞
您可能正在寻找
^[0-9 ,.\-+\*]*$
这首先查找字符串的开头^
,然后查找任意数量的允许字符[...]*
,最后查找字符串的结尾$
。您的正则表达式会查找字符串中出现的任何一个,因此只要一个字符有效,整个输入就会成功匹配。
更新
实际上,我误读了您的正则表达式。您已经否定了该课程,因此匹配单个字符应该有效。你可以在这里找到一个例子:https ://regex101.com/r/bKZAl5/1/
我相信,你可能只是错误地引用了你的一些角色。星号应该被转义,减号目前没有被转义,给你一个完整的匹配字符范围从\
到+
。也就是说,它可能需要双反斜杠将其转义到您的输入字符串中,而您只是将其原样粘贴到此处。
添加回答
举报
0/150
提交
取消