PCRE查找所有可能的匹配值

发布于 2024-09-07 00:33:23 字数 147 浏览 3 评论 0原文

我在 PHP 中使用 PCRE,我需要找到一种方法来生成所有可能匹配值的数组。有什么想法吗?

例如,如果我有 R[2-9]{1} 我想要:

R2
R3
R4
R5
R6
R7
R8
R9

I am using PCRE in PHP and I need to find a way to generate say an array of all possible matching values. Any ideas?

For example if I had R[2-9]{1} I would want:

R2
R3
R4
R5
R6
R7
R8
R9

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意犹 2024-09-14 00:33:23

PCRE 无法基于正则表达式生成示例字符串。我不知道有哪个 PHP 库可以做到这一点。可以执行此操作的库通常仅支持有限的正则表达式风格,并且需要对可匹配无限数量字符串的正则表达式进行人为限制,例如 R[2-9]* 。

如果您只需要对像 R[2-9] 这样非常简单的正则表达式执行此操作,那么应该不难:

  • 在您自己的代码中解析正则表达式以生成示例值,或者使用另一种机制。
  • 或者使用您自己的机制来指定“R 后跟 2 到 9 之间的数字”,然后您的代码可以生成正则表达式和示例值列表。
  • 或者,如果正则表达式硬编码在源代码中,则只需手动键入值列表即可。

PCRE does not have the ability to generate sample strings based on a regular expression. I do not know of a PHP library that does. Libraries that can do this usually support only limited regex flavors and need artificial restrictions for regexes like R[2-9]* that can match an infinite number of strings.

If you only need to do this for very simple regexes like R[2-9] then it shouldn't be to hard to either:

  • Parse the regex in your own code to generate the sample values, or to use another mechanism.
  • Or to use your own mechanism to specify "R followed by a digit between 2 and 9" from which your code can then generate both the regex and the list of sample values.
  • Or, if the regexes are hard-coded in your source code, just to type out the list of values by hand.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文