我正在使用一个需要我为各种文件提供正则表达式的应用程序。它使用正则表达式中的匹配来唯一标识每个文件,然后使用数据存储来检索有关这些文件的元数据。
但是应用程序存在问题,因此它假设用于标识每个文件的数据只是数字数据。因此,它以整数存储匹配结果。
我控制数据存储但不控制文件的名称。由于应用程序中有错误,我希望我可以使用编码方案将非数字数据转换为整数。但是为此我要求正则表达式返回一些不是原始字符串的东西作为匹配。这可能吗?
编辑:,因为我的问题不明确。我没有使用编程语言。我只是在编辑配置文件。但该应用程序是用C ++编写的。我不知道他们正在使用什么特定的正则表达式实现。但我想那时候不可能。
我问这个问题的原因是sql允许我返回一些不属于任何表格的东西。我希望有可能与正则表达式类似。
答案 0 :(得分:1)
没有。正则表达式将返回与其模式表达式匹配的输入字符串的部分。它不会执行任何转换或编码,也不会从其他地方添加内容。
但是,大多数语言和/或框架都支持基于正则表达式的替换。例如,在Javascript中,您可以将回调函数指定为替换参数。然后将为每个匹配调用该函数:
text = text.replace(/[^0-9]+/g, function (match) {
return match.charCodeAt(0); // or whatever encoding you want to specify
});
但是既然你从未告诉过我们你在做什么环境(编程语言,开发平台,操作系统),这可能与你完全无关。 (提示:下次再告诉我们一点)。
我想你可能需要编写一些额外的代码来处理正则表达式找到的匹配项。