A
とB
のように、2文字の間のすべてのコンテンツを検索したい:
Asd;lfksjd;fsdfjs;ldfkB
これはsd;lfksjd;fsdfjs;ldfk
そしてそれらを交換してください。この式をどのように書くのでしょうか?
次の正規表現を使用して、AとBの間の任意の文字を一致させることができます。
(?<=A).*(?=B)
これは、一致した文字の一部としてAまたはBを返しません。
(?<=A)
は、Aがメイン式の前にあり、一致する場合はメイン結果に含めたくないことを意味します。
.*
は、0回以上出現する任意の文字に一致することを意味します。少なくとも1つの文字をAとBの間に配置する場合は、代わりに。+を使用できます。
(?=B)
は、Bがメイン式の後にあり、一致する場合はメイン結果に含めたくないことを意味します。
編集:
Notepad ++は先読み/後読みをサポートしていないため、置き換えることができます
(A).*(B)
と
\1\2
代わりに。
これは貪欲なので、「AxB y AzB」があると、「AB」になります。 「AByAB」を取得するには、
(A).*?(B)
代わりに。
*欲張りでない編集、.?*
が間違っていた
私は正規表現にとても慣れていないので、うまくいけばこれがあなたのために働くでしょう。
A。* Bが検索する正規表現になると思います。つまり、AとBの間に0個以上のものがある状態で検索します。
この正規表現には一致にAとBが含まれているため、置換を使用してそれらを再度追加する必要があります。
AreplaceBそれを置き換えるテキストになります。