-6

こんにちは私は、文字*が前の文字と0回以上一致するために使用されていることを知っています。ここに問題があります。ここで、ゼロ時間とはどういう意味ですか。例:script[\s]*これがどのように機能する場合、スクリプトのみをブロックするのか、それともスクリプトの後に空白をブロックするのか。

4

5 に答える 5

2

、、および修飾子は*、それらの直前の式に適用されるため、この場合、アスタリスクは単独で適用されます。に適用したい場合は、式全体を括弧で囲むことができます。キャプチャ グループを作成したくない場合は、次のように を使用します。+?[\s]script[\s](script[\s])*(?:)

(?:script[\s])*
于 2012-08-23T12:56:40.223 に答える
0

ここでゼロタイムとはどういう意味ですか?

他の場所を意味するのと同じです。

たとえば、「私はあなたを 0 回突いた」は、私があなたをまったく突かなかったことを意味します。

または、「私はあなたを 0 回以上突いた」は、私があなたを突かなかったこと、または私があなたを 1 回、または 2 回突いたことを意味します。

例: script[\s]* この場合、どのように動作するか、スクリプトのみをブロックするか、スクリプトの後に空白が続くブロックをブロックします。

正規表現はor orなどに一致 します。"script""script ""script "

于 2012-08-23T14:54:43.830 に答える
0

Regexr.comで実際の動作を確認してください。

いくつかのメモ:

  • \sでラップする必要はありません[]:script\s*
  • \s空白を意味します。
  • regular-expressions.infoを読んでRegexBuddyを試すことをお勧めします。(または少なくともRegexr )
于 2012-08-23T12:58:41.493 に答える
0

角括弧は文字クラスを\s意味し、「空白文字」 (つまり、、など\t) を意味します。したがって、ここで*は式に適用され[\s]、正規表現全体は「一致のscript後に 0 個以上の空白文字が続く」ことを意味します。

于 2012-08-23T12:58:45.937 に答える
0

あなたが示した正規表現は次のように機能します。

1) 文字 'script' を文字通りに一致させます

2) 「空白文字」(スペース、改行など) である単一の文字に一致します。

2.1) できるだけ多く

したがって、単一の 'script' と 'script_ _ ' (任意の数のスペース)に一致します。

于 2012-08-23T13:01:36.847 に答える