我的問題是我需要檢查一個(gè)字符串,如果它只包含以下任意數(shù)量的字符:任何數(shù)字 0-9這些 - + 中的任何字符。\ * 和一個(gè)空格如果它包含任何其他字符,則該字符串無效,正則表達(dá)式應(yīng)捕獲它。我嘗試了以下正則表達(dá)式,但不幸的是,它不起作用,我被卡住了。"[^0-9 ,.\\-+*]"例如:1 * 2.4324 應(yīng)該是正確的,但 1 & 2.3231 不應(yīng)該提前謝謝。
1 回答

ITMISS
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可能正在尋找
^[0-9 ,.\-+\*]*$
這首先查找字符串的開頭^
,然后查找任意數(shù)量的允許字符[...]*
,最后查找字符串的結(jié)尾$
。您的正則表達(dá)式會(huì)查找字符串中出現(xiàn)的任何一個(gè),因此只要一個(gè)字符有效,整個(gè)輸入就會(huì)成功匹配。
更新
實(shí)際上,我誤讀了您的正則表達(dá)式。您已經(jīng)否定了該課程,因此匹配單個(gè)字符應(yīng)該有效。你可以在這里找到一個(gè)例子:https ://regex101.com/r/bKZAl5/1/
我相信,你可能只是錯(cuò)誤地引用了你的一些角色。星號(hào)應(yīng)該被轉(zhuǎn)義,減號(hào)目前沒有被轉(zhuǎn)義,給你一個(gè)完整的匹配字符范圍從\
到+
。也就是說,它可能需要雙反斜杠將其轉(zhuǎn)義到您的輸入字符串中,而您只是將其原樣粘貼到此處。
添加回答
舉報(bào)
0/150
提交
取消