我想下面的函數來驗證一個字符串,如果它看起來像這樣:Excel的VBA正則表達式
- 任何數字(包括分數和小數。)
- 的片/袋/盒可選一個同義詞 陽
- 任選的一種/陰同義詞
可以是空間和2個可選部分的順序物質不應該(「2框男性」 ==「2雄性框」)
但是在做什麼有用的東西該功能節選以數字開頭的一切:
Function validAmount(Zelle As Variant)
Set regEx = CreateObject("VBScript.RegExp")
regEx.IgnoreCase = True
regEx.Pattern = "\d\s?(pcs|pieces|piece|pc|stk|bags|bag|box|bx|boxes)?\s?(male|m|female|f)?"
If (regEx.test(Zelle)) Then
validAmount = True
Else
validAmount = False
End If End Function
我希望我的錯誤是不是太傻
編輯: 我想到了一個附加功能。我怎麼能讓上述模式的多個實體通過一個「,」像「1盒女,3袋m,4件男」分開
ps:這兩種解決方案工作得很好,但允許像這樣的「1男性女性」或「2盒包」
編輯2: 首先:我非常感謝您的幫助!我從來沒有自己解決這個問題!我想點擊「解決」(不能點擊「上升」,因爲我的聲望仍然太低),只要一切按預期工作。如果我早點擊它,我很抱歉。這是我的第一個問題,我有點不知所措,你的答案有多快:)
我想我無法表達我的願望:D真的對不起!這裏是第三次嘗試:只有(至少)每個組應允許其中一組。真正的投入應該是: 「#箱性別」 「#性別盒子」 「#盒」 「#性別」 「#」 但不是: 「#箱箱」 或 「#男女性別」
@sln:我覺得你的第一個看起來更像我想要的,但它允許同一組的兩個實例,儘管它看起來像它不應該:(對於JMax解決方案相同)
@JMax:我愛你「分裂」解決方案!甚至沒有想到這個簡單的伎倆:DI是如此固定在正則表達式,沒有想到任何其他
你應該有權利現在upvote :) – JMax