在Java中,我尝试使用正则表达式自动解释文本。
因此,我需要找到一种方法,将正则表达式的第一个匹配替换为该正则表达式的随机生成的匹配,如下所示:
public static String paraphraseUsingRegularExpression(String textToParaphrase, String regexToUse){
//In textToParaphrase, replace the first match of regexToUse with a randomly generated match of regexToUse, and return the modified string.
}
字符串
那么,如何将字符串中正则表达式的第一个匹配项替换为该正则表达式的随机生成的匹配项呢?(也许一个名为xeger的库可以用于此目的。)
例如,paraphraseUsingRegularExpression("I am very happy today", "(very|extremely) (happy|joyful) (today|at this (moment|time|instant in time))");
将用正则表达式的随机生成的匹配替换正则表达式的第一个匹配,这可能会产生输出"I am extremely joyful at this moment in time"
或"I am very happy at this time"
。
1条答案
按热度按时间3vpjnl9f1#
你可以通过下面的步骤来实现:
首先,用
regexToUse
拆分textToParaphrase
字符串,您将得到一个数组,其中textToParaphrase
的部分与提供的表达式不匹配。例如:如果,字符串
输出将为:
{"I am ", "for you"}
。然后用这些生成的字符串创建一个正则表达式(如"(I am |for you)"
)。现在再次用这个生成的表达式拆分textToParaphrase
,你将得到给定正则表达式的匹配部分的数组。最后用随机生成的字符串替换每个匹配部分。代码如下:
型
干杯!干杯!