C#的repace方法和正则表达式的结合用法
正则表达式在C#中的用法:(我用C#的repace方法处理)
三种情况举例
A B
Our W a y to home our way to home
O u r way to home our way to home
our way to h o m e our way to home
要用正确的B来代替A,如何用正则表达式来表示A的三种情况和B??
(A1:句中有2个以上字母以空格间隔出现)
(A2:句首有2个以上字母以空格间隔出现)
(A3:句尾有2个以上字母以空格间隔出现)
急啊 !!
[最优解释]
同意4楼所说,此种情况,严格意义上说,是没法写出来的。
比如 a head xxx xxx
到底是 ahead被分割为a head,还是本身就是a head,都没法确定的。
所以,写出正则表达式的话,意义也不大了。
[其他解释]
这挺难的,假如这个单词左边有个单词为I,或者a,而且这个单词和前面这个单词合起来,然后去掉尾字母,又是一个正确的单词,恐怕不是正则表达式能搞定的了。
假设不考虑“左边或右边有个单词为I,或者a”这种情况,我只想到一个能够查找,但不能替换的方法,为:
(^
[其他解释]
Our W a y to home 句中(非句首,非句尾)有个单词被2个或更多个空格隔开
O u r way to home 句首单词被2个或更多个空格隔开
our way to h o m e句尾单词被2个或更多个空格隔开
这样才说得通吧?
[其他解释]
就是你说的这种情况,就是这里的自动回复把A,B的距离自动处理了;;sorry for not clearly clarify
[其他解释]
A
Our W a y to home
O u r way to home
our way to h o m e
B
our way to home
our way to home
our way to home
(B就是一种正确的表达,都是一样的)
[其他解释]
)(([a-zA-Z]) ){2,}([a-zA-Z])(
[其他解释]
$)
可不可以先用上面的正则表达式查找到,对查找到的内容,首尾有可能的作为单词分隔符的空格先不管(不是删除,是不处理)(即不管查找到的内容的首尾各一字符),然后将它中间的所有空格删除?
[其他解释]
你说的情况的确意义不大;
但是我说的不是这种情况,,我说的是两个以上的字母在句首,句中或者句尾,才做处理;
但是也有可能处理的数据会是I a m here,诸如此类的,处理的话意义就不大;
如果是这一类的,在我自己这里的实际情况就是别人提供的数据的问题;
不是我的问题;所以这样的情况,属于特例;
也许用正则处理真的是一种错误的选择,我会再仔细看看;不钻这个死胡同;