Regex 帮助用户编写正则表达式
我正在从事一个项目,其中有一些文本字段的格式规则 用户可以编辑这些规则。目前,规则是正则表达式。用户认为正则表达式非常吓人,希望用一种更简单、更友好的方式编写正则表达式 我想到了一些简单的翻译工具。。。用户可以在其中输入#作为数字。。。X代表一封信等。。但我知道总有一天他们需要的不仅仅是字母和数字 我想知道是否存在一个简单的翻译工具,或者是否有更好的方法来做到这一点Regex 帮助用户编写正则表达式,regex,Regex,我正在从事一个项目,其中有一些文本字段的格式规则 用户可以编辑这些规则。目前,规则是正则表达式。用户认为正则表达式非常吓人,希望用一种更简单、更友好的方式编写正则表达式 我想到了一些简单的翻译工具。。。用户可以在其中输入#作为数字。。。X代表一封信等。。但我知道总有一天他们需要的不仅仅是字母和数字 我想知道是否存在一个简单的翻译工具,或者是否有更好的方法来做到这一点 感谢您的阅读,欢迎您提出所有建议和想法。创建您所建议的工具应该相当简单。只需将占位符展开为相应的正则表达式值: var input
感谢您的阅读,欢迎您提出所有建议和想法。创建您所建议的工具应该相当简单。只需将占位符展开为相应的正则表达式值:
var input= "XX##*"
var regex = input.replace('#', '[0-9]')
regex = regex.replace('X', '[a-zA-Z]')
regex = regex.replace('*', '.*')
# etc
当然,您必须定义您的占位符以及您希望向用户提供的任何其他选项。您还可以通过使用/
(或其他标识符)围绕输入来获得创造性,并允许高级用户直接输入正则表达式
当然,这完全是一个虚构的语言来演示解决方案。。。如果你能找到一种编译它的方法,我将非常感兴趣。:)
- 将每个
替换为X
[a-zA-Z]
- 将每个
替换为#
\d
- 将每个
替换为^
\^
- 所有其他字符替换为
,其中[*]
是要替换的字符*
^
,在结尾添加$
可能他们是如何定义的?他们是把它们写在文本文件中,还是通过网络表单?如果你使用了一个表单,你可以使用按钮,上面写着“数字”之类的东西(而不是在DSL的顶部写DSL),他们通过表单来写谢谢你的评论,我会用我完成的回答更新谢谢你的评论我会以某种方式使用它。
var input= '/\d\d\w\w.*/'
var regex = undefined;
if (input.matches('^/(.*)/$')) {
regex = $1 (group 1 from regex)
} else {
regex = input.replace('#', '[0-9]')
regex = regex.replace('X', '[a-zA-Z]')
regex = regex.replace('*', '.*')
}