匹配文本之间没有空格但可能具有前导空格/零的字符串

  • 本文关键字:空格 字符串 文本 之间 regex abap
  • 更新时间 :
  • 英文 :


基于以下内容匹配的正则表达式

  • 最少 12 个字符或最多 13 个字符
  • 可以有前导空格/零
  • 字符串中没有空格
  • 并非所有零/空格

  • 正确匹配:《阿克德吉吉》"ABCDEFGHIJKLM"

  • 错误匹配:"ABCD IJKL"

你是说整个字符串必须有 12 或 13 个字符长,包括前导空格吗? 这将适用于大多数正则表达式风格:

^(?=.{12,13}$)s*[A-Za-z0-9]+$

不过我不确定ABAP。 我发现的许多搜索命中都表明它支持前瞻,但如果你真的使用 POSIX 标准正则表达式,这将不起作用。 您可能需要在单独的测试中进行长度检查。

更新:为了防止所有零匹配,您需要添加另一个前瞻:

^(?=.{12,13}$)(?!0+$)s*[A-Za-z0-9]+$

更新2:我突然想到,你可能不想要像" 000000000"这样的字符串 - 即所有零加上前导空格。 此正则表达式将涵盖以下内容:

^(?=.{12,13}$)(?!s*0+$)s*[A-Za-z0-9]+$

您可以使用此正则表达式:

^ *[A-Za-z0-9]{12,13}$
s*b[a-zA-Z0-9]{12,13}b

这不需要字符串位于其自己的行上。如果您实际上并不关心匹配初始空格,则可以摆脱s*

您只需要可选的前导空格:

s*[A-Za-z0-9]{12}

相关内容

  • 没有找到相关文章

最新更新