0

preg_match文字列を別の文字列と検索または照合できる PHPのような関数があるかどうか疑問に思っています。

   //In Array `word`       // in array `part`
   "Backdoor",        0        "mark"         3 (matches "Market")
   "DVD",             1        "of"           2 (matches "Get off")
   "Get off",         2        ""            -1 (no match)
   "Market",          3        "VD"           1 (matches "DVD")

文字列の一部だけに一致する関数があれば素晴らしいと思いますが、私の知る限りではstrcmp、文字列全体が一致するかどうかのみを比較します。常に false になります。

4

2 に答える 2

3

std::strstr(). 正規表現は実行しませんが、単純な文字列間の一致は実行します。

const char *foo = "Quick brown fox";
const char *bar = "brown";

printf("%d\n", strstr(foo, bar) - foo);  // Displays "6"

また、C++ を使用しているため、次のものもありstd::string::find()ます。

std::string foo = "Quick brown fox";
std::string bar = "brown";

std::cout << foo.find(bar) << "\n";   // Displays "6"
于 2012-06-10T19:31:38.757 に答える
1

あなたが使用することができますstd::string::find()

また、使用できますstd::strstr()


別の方法として、動的計画法またはバックトラック法を使用してこの関数を実装できます (動的計画法のほうがパフォーマンスが高くなります)。

当然、この質問がアルゴリズムの問​​題ではないことはわかっていますが、この回答は役立つと思います

于 2012-06-10T19:33:40.840 に答える