我有一个函数remove
,它将正则表达式作为字符串和另一个字符串。它从第二个字符串中删除与正则表达式匹配的任何内容并返回它。
目前,我正在使用文字正则表达式字符串调用remove
函数,例如:
remove "(my|a)?string" "Test string" -- returns "Test "
这个程序将会增长,并且会有很多正则表达式要调用,并且每个程序都可以在整个程序中多次使用。我应该像这样存储它们:
myregex = "(my|a)?string"
或者我应该制作数据类型还是别的什么?
由于
答案 0 :(得分:5)
一种选择是使用部分申请,如:
remove regex str = <generic code to remove the regex expression from string>
对于您想要应用的每种特定类型的正则表达式,您可以编写如下函数:
removeName = remove "<name_regex>"
等等。然后你可以使用像
这样的功能removeName "myname"
答案 1 :(得分:4)
如果需要考虑性能,那么您打算多次使用的任何regexen都应编译一次并以编译形式存储。另请参阅makeRegex的文档。