因此,我正在大学学习编程,我有一项任务需要特别使用Regex。
所以基本上,我需要编写程序,从第一个文件复制文本,直到遇到第二个文件中第一个未复制的单词,或者到达文件的末尾,并且找到未复制的单词(或到达文件末尾),然后从第二个文件复制文本,直到遇到第一个文件中第一个未复制的单词或到达文件末尾为止,重复执行直到两个文件都结束。大小写无关紧要。
例如:
文件1:您非常漂亮,可以给我您的电话号码吗?
File2:美丽是碧昂斯,而不是我。
结果:你非常美丽是碧昂丝,而不是我。漂亮,你能给我你的电话号码吗?
是的,我知道,这是一个令人困惑的结果,但是我需要制作,所以您有什么想法或提示,如何制作此程序?
答案 0 :(得分:0)
首先,让您成为一个遵循.Net Regex规则的Regex设计器。
我使用:https://rad-software-regular-expression-designer.software.informer.com/
这是您查找单词的方式: \ b \ w + \ b “一个单词边界,后跟至少一个单词字符,后跟一个闭合边界”,请确保使用不区分大小写的RegexOption
然后,使用不区分大小写的比较遍历两个字符串以找到匹配的单词。
完成后,将第一个单词存储在变量中。
现在,创建另一个正则表达式,它的匹配字符串是第一个匹配单词周围的“正向提前零宽度断言”。不要忘记不区分大小写的开关。 如果您将单词匹配,则会替换为该单词,而是使用“环视”,它只返回零宽度的位置,结果中将得到两个“美丽”
使用Regex的实例方法“替换(左,右)”
现在,我也把代码放在一起了,但是您应该自己做。
// So I've hidden the code in this pastebin:
https://pastebin.com/fBAu1zBY
// Only go there is you've not managed to figure this out for yourself!