【问题标题】:How to validate a part of string using Unicode Regular Expressions如何使用 Unicode 正则表达式验证字符串的一部分
【发布时间】:2021-03-17 14:47:57
【问题描述】:

示例字符串:https://test-welcome123.com/ablcv#$2 我只想验证 https://test-welcome.com 这部分。 /ablcv#$2 这部分我不想验证。 要求:

  1. 网址 (https://test-welcome123.com) 应为小写字母、数字、点 (.) 和连字符 (-)。
  2. 在斜杠 (/) 之后可以是任何内容。

我正在使用 Unicode 正则表达式来验证字符串。 我能够验证 URL。但不明白如何避免验证斜杠(/)后的字符串。

^(https://)(((([\p{Ll}\p{N}]|[\p{Ll}\p{N}][\p{Ll}\p{N}\-]*[\p{Ll}\p{N}])\.)*([\p{Ll}\p{N}]|[\p{Ll}\p{N}][\p{Ll}\p{N}\-]*[\p{Ll}\p{N}])))+$

我需要在输入 URL 后避免验证。我该怎么做?

【问题讨论】:

    标签: regex unicode


    【解决方案1】:

    你可以使用

    ^https://[\p{Ll}\p{N}]+(?:[-.][\p{Ll}\p{N}]+)*/.*
    

    详情

    • ^ - 字符串开头
    • https:// - 带有:// 的协议子字符串
    • [\p{Ll}\p{N}]+ - 一个或多个字母或数字
    • (?:[-.][\p{Ll}\p{N}]+)* - 零次或多次重复:
      • [-.] - - 或 .` 字符
      • [\p{Ll}\p{N}]+ - 一个或多个字母或数字
    • / - 一个 / 字符
    • .* - 行的其余部分(字符串)。

    【讨论】:

    • 你能告诉我如何验证包含 ;@# 的字符串吗?如果存在这些特殊字符,则字符串将无效。
    • @DebasishHalder 没有;@# 的字符串? ^[^;@#]*$.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2018-10-10
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多