0

5) 64 ビット OS では C:\Program Files (x86)\Common gateway に移動します。 6) 32 ビットでは

上記の例では、5) と 6) の間のテキストを取得しようとしていました。On 64bit OS go to C:\Program Files (x86)\Common gateway

私は次のように書いています5[)]\s?(.*?)6[)]\s?/iが、これは私が持っているようにここで失敗している(x86)ので、私の式は一致 しますOn 64bit OS go to C:\Program Files (x8

だから私は追加[^\/]することを考えていたのでスキップx86)\しますが、うまくいきません...誰か助けてください。

4

5 に答える 5

1

6)私がこの質問を正しく読んだ場合、あなたはまで一致したいと思って6)います(x86)。その場合は、否定後読みアサーションを使用します。

/5\)\s?(.*?)(?<!\(x8)6\)\s?/i

つまり、 ... そうで6)ない限り一致するまで(x86)

于 2013-05-09T16:10:13.807 に答える
1

どうですか:

5\)(.*?)\s6\)

必要なものを取得するために の前に空白を使用して6)いますが、この空白はキャプチャされた文字列には必要ありませんよね?

于 2013-05-09T15:58:20.590 に答える
-1

「貪欲でない」修飾子を削除します。

つまり、キャプチャパターンを置き換えます

(.*?)

(.*)

最初のものは可能な限り一致しません。2 番目は可能な限り一致します。

于 2013-05-09T15:52:50.697 に答える
-1

シンプル5\)(.*6\).*)6\)にすべてを に入れる必要があり$1ます。正規表現で周囲の空白を除外するのではなく、trim($1).

たとえば、正規表現内の空白を一致させようとする際の問題の 1 つ5\)\s*(.*6\).*)\s*6\)は、式のどの部分が右端の の前のスペースと一致するかを知ること6)です。.*\s*6\)部分を考慮すると、.*または\s*のスペースと一致しtext 6)ますか? したがって、トリムを使用することをお勧めします。

于 2013-05-09T15:49:38.497 に答える