1

これは初心者の質問です

文字列Sでパターンを検索するとしますP。次に、を囲む文字列のサブ文字列を表示しますP。サブストリングは1行(つまりN文字)のみで、単語全体を含める必要があります。どのようにコーディングしJavaScriptますか?

例:
Let S= "Hello world、welcome to the universe"、P= "welcome"、およびN=15。単純なソリューションは "ld、welcome to"(前後に4文字を追加P)を与えます。「世界、ようこそ」に「切り上げ」たいと思います。

正規表現はここで役に立ちますか?

4

2 に答える 2

2

必要な正規表現は次のとおりです。

/\s?([^\s]+\swelcome\s[^\s]+)\s?/i    //very simple, no a strange bunch of [] and {}

説明:

あなたが一致させようとしているのは実際には

 「世界、ようこそ」

したがって、前後にスペースがありません。

\s?       //the first space (if found)
(         //define the string position you want
[^\s]+    //any text (first word before "welcome", no space)
\s        //a space
welcome   //you word
\s        //a space
[^\s]+    //the next world (no space inside)
)         //that's it, I don't want the last space
\s?       //the space at the end (if found)

申請中:

function find_it(p){
    var s = "Hello world, welcome to the universe",
        reg = new RegExp("\\s?([^\\s]+\\s" + p + "\\s[^\\s]+)\\s?", "i");

    return s.match(reg) && s.match(reg)[1];
}

find_it("welcome");   //"world, welcome to"

find_it("world,");    //"Hello world, welcome"

find_it("universe");  //null (because there is no word after "universe")
于 2012-06-03T17:50:22.623 に答える
1

これがあなたが探しているものだと思います。

$a = ($n - length of $p)/2
/[a-zA-Z0-9]{$a}$p[a-zA-Z0-9]{$a}/

変数がどこにあるかを示すためにドルを使用しました。具体的な例を書くのに十分なコードを提供していません。

于 2012-06-03T17:50:16.103 に答える