如何从下面的正则表达式模式中得到所有可能的组合?"(ost|west)europäisch(*$|e(*$|r|s|n|m))"
我想得到一个像这样的向量:
[1] "osteuropäisch" "westeuropäisch" "osteuropäische" "westeuropäische"
[5] "osteuropäischer" "westeuropäischer" "osteuropäisches" "westeuropäisches"
[9] "osteuropäischen" "westeuropäischen" "osteuropäischem" "westeuropäischem"
从下面的question中,我了解到我可以使用以下函数获得所有组合:
do.call(paste0, expand.grid(
c("ost","west"),
"europäisch",
c("", paste0("e", c("", "r", "s", "n", "m"))))
)
但是,我有大量不同的正则表达式模式需要转换成完整的字符串,因此,我想知道是否有任何R的函数或包可以将正则表达式转换成所有可能组合的向量。
到目前为止,我还没有在base
、stringi
或stringr
中找到任何显式函数
从一个similar question on regex combinations in python,我知道对于python来说exrex模块是存在的,我在想也许对于R来说存在类似的东西,但是我找不到?
1条答案
按热度按时间xam8gpfp1#
这几乎适用于你的例子-你可以很容易地把它封装在一个函数中。我不知道它是否会在不同的/更奇特的例子中崩溃...
(This不太适用于“e”前面的“*$”:例如,是“westeuropäischm”,没有“e”之间的“h”和“m”不应该是一个选项?
检查:
(还不太管用)