-2

こんにちは私は正規表現で2つのタスクの助けが必要です私は初心者であり、さまざまなチュートリアルを見ましたが、答えを見つけることができません。

  1. カンマに続く単語をどのように繰り返しますか?

    たとえば、出現するたびに置換を見つけて、それに続く単語に置換したいとします。

    例:猫と犬->猫と犬

  2. 「i」または「t」で始まる単語を、Iという単語を除いてどのように置き換えますか

    たとえば、これを置き換えたい->(新しい単語)を(新しい単語)に置き換えたい

4

4 に答える 4

2
  1. に置き換え, ((\w)+)ます, \1 \1

    \w単語の文字を意味します (通常は[A-Za-z0-9_])

    (\w)+1 つ以上の単語文字を意味します

    \1は、最初の式 ((\w)+この場合) の括弧内に最初に現れるものを意味し、これは 2 回繰り返されます。\1 \1

  2. に置き換え(\s|^)((i|I)\w+|(t|T))ます\1NEWWORD

    (a|b)またはa_b

    ^行の開始を示します

    \s空白を意味します

    つまり(\s|^)、空白または行頭

    (i|I)小文字または大文字を意味しますi

    (i|I)\w+i文字の後に 1 つ以上の文字が続くことを意味します

    (t|T)小文字または大文字を意味しますt

    ((i|I)\w+|(t|T))i文字の後に 1 つ以上の文字または文字が続くことを意味します。t

    NEWWORD置き換えたい単語です

于 2013-02-21T21:30:42.693 に答える
0

最初の正規表現は次のとおりです。

,\s*(\w+)

また、言語に応じて、$1 または \1 の後方参照を使用します。

2 番目の正規表現は次のとおりです。

[iITt]\w+

また、後方参照は必要ありません。

于 2013-02-21T21:27:41.783 に答える
0

試す:

preg_replace("/,\s*([^\s]++)/", ", $1 $1", $string);

これは、グループ化および後方参照と呼ばれます。$1 の代わりに \\1 を使用することもできます。

より包括的なガイド: http://www.regular-expressions.info/brackets.html

于 2013-02-21T21:30:39.027 に答える
0

これは Autoit コードです。理解するのに役立つかもしれません

$var = 'This is the test, HelloWorld yeah!'

ConsoleWrite(StringRegExpReplace($var, ',(\s*[a-zA-Z]+)', '$1$1') & @CRLF)
于 2013-02-21T21:30:47.683 に答える