首页 > 解决方案 > 使用 RegEx 从给定字符串中提取策略 ID

问题描述

我必须提取下面给出的字符串

PO-EXW1900000955/00/00

我写了以下正则表达式

/(?<=Policy) \w+-\w+\/\w+\/\w+/

上面的工作正常,但我觉得我重复这个 \w+ 每个单词。有没有其他更好的方法来避免这种重复的\w+?

标签: regexruby

解决方案


好吧,您的表达式工作得很好,如果您愿意,也许您可​​以将其修改为某些表达式,例如:

re = /(?<=Policy\s)[A-Z]+-[A-Z0-9]+\/[0-9]+\/\d+/
str = 'Policy PO-EXW1900000955/00/00'

str.match(re) do |match|
    puts match.to_s
end

该表达式在regex101.com的右上角面板上进行了说明,如果您希望探索/简化/修改它,并且在此链接中,您可以查看它如何与一些示例输入匹配,如果您愿意的话。


推荐阅读