C#使用正则表达式查找单词,有什么建议吗?

时间:2018-11-27 13:46:45

标签: c#

因此,我正在大学学习编程,我有一项任务需要特别使用Regex。

所以基本上,我需要编写程序,从第一个文件复制文本,直到遇到第二个文件中第一个未复制的单词,或者到达文件的末尾,并且找到未复制的单词(或到达文件末尾),然后从第二个文件复制文本,直到遇到第一个文件中第一个未复制的单词或到达文件末尾为止,重复执行直到两个文件都结束。大小写无关紧要。

例如:

文件1:您非常漂亮,可以给我您的电话号码吗?

File2:美丽是碧昂斯,而不是我。

结果:你非常美丽是碧昂丝,而不是我。漂亮,你能给我你的电话号码吗?

是的,我知道,这是一个令人困惑的结果,但是我需要制作,所以您有什么想法或提示,如何制作此程序?

1 个答案:

答案 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!