こんにちは。
2つの文字群からマッチする文字列を出力したいです。
例えば、
テスト1=ほげほげABCほげほげ
テスト2=あああああああABCあああああほげ
出力(配列):ABC、ほげ
上記のようなことは可能でしょうか?
また、上記ができる場合、文字列が5文字以上のマッチする値を出力するなどの
カスタムは可能でしょうか?
こんにちは。
2つの文字群からマッチする文字列を出力したいです。
例えば、
テスト1=ほげほげABCほげほげ
テスト2=あああああああABCあああああほげ
出力(配列):ABC、ほげ
上記のようなことは可能でしょうか?
また、上記ができる場合、文字列が5文字以上のマッチする値を出力するなどの
カスタムは可能でしょうか?
こんにちは
可能と思いますが、アルゴリズム的には総当たりに近いものになるような気がします。
もう少し条件とか、目的などの情報があると、効率的な方法が見つかるかもしれません。
お返事ありがとうございます。
文字数は少ないので総当たりでもよいかなと考えています。
ルールが決まっていない文字列が2つの群に入っているかどうかを確認したく、
文字列前後のルールなどが決まっていないのでマッチする文字列を出力して、5文字以上であることを確認する方法がベストかなと考えております。
こんにちは
一例として以下のような感じになるかと思います。(1行でも記述できますが、3つにわけています。minLengthの値が最小文字列長になります)
arrString = Enumerable.Range(0,l).SelectMany(Function(pos) if(l-pos-minLength+1>0,Enumerable.Range(minLength,l-pos-minLength+1).Select(Function(len) str1.Substring(pos,len)),{})).Distinct().ToArray()
arrString = arrString.Where(Function(s) str2.Contains(s)).ToArray()
arrString = arrString.Where(Function(s) arrString.Count(Function(s2) s2.Contains(s))=1).ToArray()
Main.xaml (7.6 KB)