regex - 从文本中捕获两位数字

标签 regex powershell

我想从以下头文件中捕获所有两位数字:

#define KEYMAP( \
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
)

所以我想得到一个包含00,01,02 ..... 4D的列表。我尝试使用Select-String cmdlet做到这一点:
gc 'y:\keyboard.h' | sls 'K'

但是没有给我预期的结果

最佳答案

我将使用静态regex::Matches方法:

$content = Get-Content 'y:\keyboard.h' -Raw
[regex]::Matches($content, '\bK(..),') | Foreach {
    $_.Groups[1].Value
}

输出:

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 40 41 42 45 49 4A 4B 4C

关于regex - 从文本中捕获两位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39115453/

相关文章:

c++ - 为什么这个正则表达式不适用于 c++ TR1?

html - 您能否提供一些示例说明为什么使用正则表达式难以解析 XML 和 HTML?

java - 模式和匹配 : Formatting a text file

loops - 使用 Psloggedon 的 Powershell 查看谁最后登录了远程主机(来自主机列表)

powershell - 我想使用 ftp 创建持久映射网络驱动器

python - 贪婪的正则表达式或逻辑

java - 使用 java 从字符串中查找 mathml

powershell - 在 PowerShell 中将路径设置为变量

PowerShell 使用第三方模块而不安装它

powershell - 查看网络适配器的高级属性,例如Get-NetAdapterAdvancedProperty