basic4android - 正则表达式与url匹配

时间:2017-09-22 22:59:07

标签: regex basic4android

我有以下正则表达式模式用于测试网址,它适用于所有在线正则表达式测试人员,包括b4a的原始正则表达式测试器(https://b4x.com:51041/regex_ws/index.html),但不在代码中!

 Sub Validate(Url As String)As String
    Dim Pattern As String=$"^(https:\/\/t\.me\/|https:\/\/telegram\.me\/)[a-z0-9_]{3,15}[a-z0-9]$"$
    Dim matcher1 As Matcher
    matcher1 = Regex.Matcher(Url,Pattern)
    Return matcher1.Find
End Sub

我的网址是

Https://电报。我(+类似于' myChannel'没有任何空间,它只是堆栈的编辑器,不允许tg链接,所以如果你想检查删除空格)

总是以所有形式返回false

2 个答案:

答案 0 :(得分:1)

对于任何可能遇到此问题的人来说,解决方案是@bulbus:

 Sub Validate(Url As String)As String
    Dim Pattern As String=$"^(https:\/\/t\.me\/|https:\/\/telegram\.me\/)[a-zA-Z0-9_]{3,15}[a-zA-Z0-9]$"$
    Dim matcher1 As Matcher
    matcher1= Regex.Matcher2(Pattern,Regex.MULTILINE,Url)
    Return matcher1.Find
End Sub

答案 1 :(得分:0)

选项1
使用

import argparse

def nullable_float(str):
    if str == "":
        return None
    else:
        return float(str)

parser = argparse.ArgumentParser()

parser.add_argument('-foo', type = nullable_float, nargs = '*')

args = parser.parse_args()

或者

选项2
使用

matcher1 = Regex.Matcher(Url,Pattern,RegexOptions.IgnoreCase)

而不是

Dim Pattern As String=$"^(https:\/\/t\.me\/|https:\/\/telegram\.me\/)[a-zA-Z0-9_]{3,15}[a-zA-Z0-9]$"$

我希望这两种解决方案都能自我解释!

修改

OP接受答案后,只是一点点解释。 Dim Pattern As String=$"^(https:\/\/t\.me\/|https:\/\/telegram\.me\/)[a-z0-9_]{3,15}[a-z0-9]$"$ LineBegin ^标识符仅在LineEnd $模式下被识别,否则将被忽略。