正则表达式:计算字符串特定部分中的匹配项



例如,我正在尝试计算一组随机字符中数组的大小;

qweqe1wqeqjson=[1,2,5,3]

表达;

(?<=json=)?[0-9] 

也包括数字1作为匹配。如您所见,我尝试实施的解决方案只会在json=之后计算匹配项。

您可以使用

grep -oP '(?:G(?!^)s*,s*|json=[)Kd+' <<< "$s" | wc -l

观看在线演示

-oP的意思是:

  • o- 仅输出匹配的文本
  • P- 使用 PCRE 引擎解析正则表达式模式

(?:G(?!^)s*,s*|json=[)Kd+模式意味着:

  • (?:G(?!^)s*,s*|json=[)- 上一个成功匹配的结束,然后是用 0+ 空格字符或json=[子字符串括起来的,
  • K- 丢弃到目前为止匹配的所有文本
  • d+- 1+ 位数字

wc -l计算比赛次数。

最新更新