regex 在大文本中查找文本值的正则表达式(& V)

xzlaal3s  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(134)

当我通过SSH进入CM,运行命令并开始阅读CLI输出时,我得到了以下结果:

# * A lot more output above but been removed *
terminal_output = """
[24;1H [79b[1GCommand: disp sys cust<<[23;0H[0;7m [79b[1G[0m[24;0H [79b[1G[1;0H[0;7m [79b[1G[0m[2;0H [79b[1G[3;1H[0J7[1;1H[0;7mdisplay system-parameters customer-options [0m8[1;65H[0;7mPage   1 of  12[0m[2;33HOPTIONAL FEATURES[4;8HG3 Version: [4;20HV20 [4;50HSoftware Package: [4;68HEnterprise  [5;10HLocation: [5;20H2[6;10HPlatform: [6;20H28   [5;51HSystem ID (SID): [5;68H9990093751   [6;51HModule ID (MID): [6;68H1     [8;60HUSED[9;29HPlatform Maximum Ports: [9;53H 81000[9;60H   436[10;35HMaximum Stations: [10;53H   135[10;60H   110[11;27HMaximum XMOBILE Stations: [11;53H 41000[11;60H     0[12;17HMaximum Off-PBX Telephones - EC500: [12;53H   135[12;60H     2[13;17HMaximum Off-PBX Telephones -   OPS: [13;53H   135[13;60H    40[14;17HMaximum Off-PBX Telephones - PBFMC: [14;53H   135[14;60H     0[15;17HMaximum Off-PBX Telephones - PVFMC: [15;53H   135[15;60H     0[16;17HMaximum Off-PBX Telephones - SCCAN: [16;53H     0[16;60H     0[17;22HMaximum Survivable Processors: [17;53H 313[17;62H   1[22;9H(NOTE: You must logoff & login to effect the permission changes.)[2;50H[0m
"""

这是大量的ANSI转义码(我认为?),这使得输出不太可读,但无论如何,我试图从上面的文本得到以下:
最大桩号:一百三十五
我知道从我的理解,这将需要一个正则表达式。正则表达式,我尝试使用,但没有工作:

r'Maximum Stations:\s*(\d+)(\d+)'
r'Maximum Stations: \d+'

如果有人知道如何过滤掉这些ANSI字符代码,使它们不会出现在最终输出中,那就太好了。

  • 谢谢-谢谢
pdkcd3nj

pdkcd3nj1#

您可以尝试以下操作

"(Maximum Stations:)\s\[\d*;\d*H\s*(\d*)\[\d*;\d*H\s*(\d*)"gm

它会产生三个组,第一个组包含最大站数文本,然后再有两个组,每个组包含您要捕获的数量。您必须将这些组组合起来才能得到最终输出。
我不知道这对于您的应用程序是否足够通用。

相关问题