正規表現のポジティブな先読みに似たLuaパターン?

user3746280

任意の数の区切り文字を含むことができる文字列があります§\nそのままにしておく必要がある最後のオカレンスを除いて、文字列からすべての区切り文字を削除したいと思います。最後の区切り文字は、次の3つの状態になります\n§\nまたは§§\n最後の変数区切り文字の後に文字が含まれることはありません。

状態区切り文字が異なる3つの例を次に示します。

abc§\ndef§\nghi\n
abc§\ndef§\nghi§\n
abc§\ndef§\nghi§§\n

最後に出現したものを除くすべての区切り文字削除したいと思います。

したがって、上記の3つの例のgsubの結果は次のようになります。

abcdefghi\n
abcdefghi§\n
abcdefghi§§\n

正規表現を使用すると§\\n(?=.)、を使用できます。これは、最後の変数区切り文字の後に文字が存在しないため、ポジティブルックアヘッドを使用して3つのケースすべてに適切に一致します。

文字列の最後に区切り文字があるかどうかを確認し、Luaパターン§\n使用して置換した後、文字列に区切り文字を追加し直すことができます。ただし、これは、Luaパターンのみを使用して解決できるはずの問題に対する非常にエレガントでない解決策です。

では、Luaパターンを使用してこれをどのように行うことができますか?

mkluwe

str:gsub( '§\\n(.)', '%1' )あなたがやりたいことをする必要があります。これにより、区切り文字の後に別の文字が続く場合は区切り文字が削除され、この文字が文字列に戻されます。

テストコード

local str = {
    'abc§\\ndef§\\nghi\\n',
    'abc§\\ndef§\\nghi§\\n',
    'abc§\\ndef§\\nghi§§\\n',
}

for i = 1, #str do
    print( ( str[ i ]:gsub( '§\\n(.)', '%1' ) ) )
end

収量

abcdefghi\n
abcdefghi§\n
abcdefghi§§\n

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

if / else条件での正規表現ポジティブ先読み

分類Dev

正規表現の条件付きポジティブ先読み

分類Dev

複数のポジティブ先読みグループに一致する正規表現

分類Dev

複数の一致正規表現ポジティブ先読み

分類Dev

正と負の先読みの正規表現パターン

分類Dev

Elasticsearchのネガティブな先読み正規表現

分類Dev

ネガティブな先読み正規表現の問題

分類Dev

ポジティブな先読みを持つPython正規表現オプションのキャプチャグループ

分類Dev

Rのパーセンテージ(%)を除外するための正規表現の負の先読み

分類Dev

正規表現とネガティブな先読み

分類Dev

ブランチをネガティブおよびポジティブの先読み正規表現と一致させる方法は?

分類Dev

ネガティブな先読みに代わる正規表現

分類Dev

ネガティブな先読みのあるPython正規表現

分類Dev

単一正規表現でのネガティブな先読み

分類Dev

Wordのネガティブな先読みを持つ正規表現

分類Dev

このポジティブな先読み正規表現 'string。*?(?=)'がsedで機能しないのはなぜですか?

分類Dev

Webページの正規表現の否定的な先読み

分類Dev

Java正規表現は、ネガティブな先読みで抽出するのに役立ちます

分類Dev

正規表現先読み論理 'OR'-特定のパターンを除外する

分類Dev

先読み正規表現を使用する場合のパターン例外

分類Dev

正規表現の文字の特別な組み合わせのネガティブな先読み

分類Dev

ポジティブルックアヘッド後の正規表現の一致パターン

分類Dev

Pythonのハーストパターンに似た正規表現

分類Dev

正規表現でネガティブな先読みを制限する方法

分類Dev

正規表現:ネガティブな先読みを乗り越える

分類Dev

正規表現のネガティブ先読みの実装(Python)

分類Dev

Python正規表現先読みオーバーシュートパターン

分類Dev

ネガティブな先読みに基づいて失敗するには正規表現全体が必要

分類Dev

先読みデータが存在しない場合の正規表現の正の先読み(PCRE)

Related 関連記事

  1. 1

    if / else条件での正規表現ポジティブ先読み

  2. 2

    正規表現の条件付きポジティブ先読み

  3. 3

    複数のポジティブ先読みグループに一致する正規表現

  4. 4

    複数の一致正規表現ポジティブ先読み

  5. 5

    正と負の先読みの正規表現パターン

  6. 6

    Elasticsearchのネガティブな先読み正規表現

  7. 7

    ネガティブな先読み正規表現の問題

  8. 8

    ポジティブな先読みを持つPython正規表現オプションのキャプチャグループ

  9. 9

    Rのパーセンテージ(%)を除外するための正規表現の負の先読み

  10. 10

    正規表現とネガティブな先読み

  11. 11

    ブランチをネガティブおよびポジティブの先読み正規表現と一致させる方法は?

  12. 12

    ネガティブな先読みに代わる正規表現

  13. 13

    ネガティブな先読みのあるPython正規表現

  14. 14

    単一正規表現でのネガティブな先読み

  15. 15

    Wordのネガティブな先読みを持つ正規表現

  16. 16

    このポジティブな先読み正規表現 'string。*?(?=)'がsedで機能しないのはなぜですか?

  17. 17

    Webページの正規表現の否定的な先読み

  18. 18

    Java正規表現は、ネガティブな先読みで抽出するのに役立ちます

  19. 19

    正規表現先読み論理 'OR'-特定のパターンを除外する

  20. 20

    先読み正規表現を使用する場合のパターン例外

  21. 21

    正規表現の文字の特別な組み合わせのネガティブな先読み

  22. 22

    ポジティブルックアヘッド後の正規表現の一致パターン

  23. 23

    Pythonのハーストパターンに似た正規表現

  24. 24

    正規表現でネガティブな先読みを制限する方法

  25. 25

    正規表現:ネガティブな先読みを乗り越える

  26. 26

    正規表現のネガティブ先読みの実装(Python)

  27. 27

    Python正規表現先読みオーバーシュートパターン

  28. 28

    ネガティブな先読みに基づいて失敗するには正規表現全体が必要

  29. 29

    先読みデータが存在しない場合の正規表現の正の先読み(PCRE)

ホットタグ

アーカイブ