Perl正则表达式:区分强制字符和可选字符

nxowjjhe  于 2022-11-15  发布在  Perl
关注(0)|答案(2)|浏览(132)

这个问题是关于PERL正则表达式的。
我需要匹配一个

  • <开头,以>结尾
  • 必须包含数字[0-9]
  • 可以选择包含\s(即空格)和,
  • 任意数量的字符
  • 顺序是随机的

此模式不区分强制字符和可选字符:

/<[0-9,\s]+>/

并且将匹配:

<9>
<9,10>
<9, 10>

这是我想要的,但也有两个我不想要的:

< >
<,>

那么,如何设置一个PERL正则表达式来找到一个总是包含0-9并且可以选择包含\s,的匹配项呢?

rlcwz9us

rlcwz9us1#

如何设置一个PERL正则表达式,以查找始终包含0-9并且可以选择包含\s,的匹配项:
对于这个要求,你可以逐字使用这个正则表达式:

/<[\d,\h]*\d[\d,\h]*>/

代表:

  • <:匹配<
  • [\d,\h]*:匹配0个或多个数字、空格或逗号
  • \d:匹配数字
  • [\d,\h]*:匹配0个或多个数字、空格或逗号
  • >:匹配>

RegEx Demo

qkf9rpyu

qkf9rpyu2#

您可以使用

<\d+(?:,\s*\d+)*>

请参阅regex demo。* 详细数据 *:

  • <-一个<字符
  • \d+-一个或多个数字
  • (?:,\s*\d+)*-,的零次或多次出现,零个或多个空格,然后是一个或多个数字
  • >-一个>字符

相关问题