正则表达式中允许的字符列表

时间:2015-09-30 12:41:22

标签: regex

有人知道如何从正则表达式中提取允许的字符并构造用户友好的消息吗?

例如,通过提供正则表达式

^[a-zA-Z0-9&\-\+_\.\s]{1,10}$

获得类似

的内容
a-z A-Z 0-9 & - + _ . with spaces

我正在使用java。我可以想象,覆盖所有类型的正则表达式可能太复杂甚至不可能,但也许你知道一些可能有用的库,工具或算法。

由于

2 个答案:

答案 0 :(得分:0)

是。它可以做到。

您需要的是:

  1. 将正则表达式正文转换为字符串。
  2. 解析将输出所需列表的字符串(例如带有正则表达式)。
  3. 应用可能的正则表达式选项(例如忽略大小写结果)。
  4. 如果您对Regexp不是很熟悉,这是一项繁琐的工作。我实际上已经在生产中使用代码,但它是专有的,所以我不能在这里发布它而不是Java。

    我想你应该首先问自己,对你的问题是否没有更简单的解决方案。例如,如果您的正则表达式是常量,则可以将其与可接受字符的副手列表相关联。

答案 1 :(得分:-1)

如果您的输入是您提供的字符类,则可以将其与表达式

匹配
([^\\]-[^\\]|\\.|[^^$[\]])

将为您提供一系列元素,例如" a-z"," \ +"," _"然后,您可以进一步整理,例如,删除" \",然后打印出格式良好的格式。 您可以使用

提取长度信息
{([0-9]+)(,([0-9]+))?}

接受{1,10}以及{10}与"来自"和"到"每个人在他们自己的小组中捕获的价值。

这应该让你开始。