我希望我的正则表达式允许使用字母数字字符,“/ _-”和之间的空格,但它必须始终至少包含一个字母数字字符。
我的验证是这样的,
/ ^([A-ZA-Z0-9 / - ] + [A-ZA-Z0-9 / - \ S] * [A-ZA-Z0-9 / _- ] +)$ /
它应该接受** ABC_1-2-3 但它不能单独允许123或-_ /
请有人帮助我。
答案 0 :(得分:0)
下面给出的正则表达式将捕获带有字母数字字符的字符串,其中包含可选的空格,连字符和下划线。试试吧。
Function HasSheet(fPath As String, fName As String, sheetName As String)
On Error Resume Next
Dim f As String
f = "'" & fPath & "[" & fName & "]" & sheetName & "'!R1C1"
HasSheet = Not IsError(Application.ExecuteExcel4Macro(f))
If Err.Number <> 0 Then
HasSheet = False
End If
On Error GoTo 0
End Function
答案 1 :(得分:0)
您的正则表达式几乎是正确的,您需要在开头添加2个正向前瞻,至少需要1个字母和至少1个数字:
/^(?=.*[a-z])(?=.*\d)[a-z0-9\/_-][a-z0-9\/_\s-]*[a-z0-9\/_-]$/i
请参阅regex demo(在演示中,\s
替换为空格,因为演示是多行的。)
<强>详情:
^
- 字符串开头(?=.*[a-z])
- 在除了换行符之外的任何0 +字符之后,必须至少有一个字母(将.*
替换为[^a-z]*
以获得更好的效果)(?=.*\d) - after any 0+ chars other than line break chars, there must be at least 1 digit (replace
。 with
\ D `以获得更好的效果)[a-z0-9\/_-]
- 字母,数字,/
,_
或-
[a-z0-9\/_\s-]*
- 0+个字母,数字,/
,空白,_
或-
[a-z0-9\/_-]
- 字母,数字,/
,_
或-
$
- 字符串结束。 i
修饰符使模式不区分大小写。