我有一个正则表达式 (Javascript),它可以采用空格,后跟可选符号 [-+],后跟数字字符 [0-9.,],后跟更多可选空格。我想要做的是确保下一个字符不是 +、-、*、/ 或 ^。下一个字符可以是任何其他文本,一旦输入其他文本,就可以包含任何数学符号。这是我到目前为止所拥有的:
^\s*[-+]?[0-9,.]+\s*[^-+*/^].*$
不过,这允许 "23 +" 和 "23 df+" 匹配,我只希望后一个示例匹配。.*
如果我在接近尾声的时候离开,那么“23 +”和“23 df+”都会失败。我认为[^-+*/^]
数学字符的括号表达式会匹配下一个字符,然后.*
会匹配之后的字符,但事实并非如此。
谁能帮助解释如何解决它以及我哪里出错了?我是正则表达式的新手,想从我的错误中吸取教训。
更新其他示例。
"23" should match
"-23" should match
"23.5" should match
"2,345.5" should match
"23+" should not match (same for -,asterisk,/,^)
"23 +" should not match (same for -,asterisk,/,^)
"23 text" should match
"23 text+" should match (same for -,asterisk,/,^ in place of +)
"23 text +" should match (same for -,asterisk,/,^ in place of +)