检查一个表达式是否包含正则表达式中的下一个表达式

时间:2017-07-15 01:17:18

标签: regex

我希望我的正则表达式允许使用字母数字字符,“/ _-”和之间的空格,但它必须始终至少包含一个字母数字字符

我的验证是这样的,

/ ^([A-ZA-Z0-9 / - ] + [A-ZA-Z0-9 / - \ S] * [A-ZA-Z0-9 / _- ] +)$ /

它应该接受** ABC_1-2-3 它不能单独允许123或-_ /

请有人帮助我。

2 个答案:

答案 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修饰符使模式不区分大小写。