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

BenH

次のような形式の文字列を照合しようとしています。

username=joe password='this! is a password with "quotes" and spaces#913 custom1 customd afd weirdhuh? custom1=myvalue

より詳細に説明するために、これは等号で区切られた変数のリストです。渡すことができる有効な変数は、ユーザー名、パスワード、およびcustomX(Xは任意の桁数)です。

渡された変数は技術的には有効な文字である引用符やスペースなどをいくつでも持つことができるため、私は特にパスワードフィールドを一致させようとしています。パスワード文字列がいつ終了するかを決定するために使用するのに最適な「ブレークポイント」は、次の変数が開始していることを推測する「customX =」文字列の存在であると判断しました。

したがって、上記の例では、実際のパスワードは次のようになります。

'this! is a password with "quotes" and spaces#913 custom1 customd afd weird huh?

次の正規表現に到達しました。

(?i)password(?-i)=.+?(?= (?i)custom(?-i)\d+=)

これは、次のように一致します。

password='this! is a password with "quotes" and spaces#913 custom1 customd afd weird huh?

これは事実上私が望むものです(「password =」を簡単に解析できます)が、問題は、この正規表現が文字列の最後に最後の「custom1 = myvalue」が存在する場合にのみ機能するように見えることです。それが削除された場合、一致するものはまったくありません。

その最終的な値が存在するかどうかに関係なく、パスワード文字列を一致させることができる必要があります。

「password =」を削除して、実際のパスワードのみを使用できる場合のボーナスポイント。

MátéJuhász

しかし、問題は、この正規表現が機能するように見えるのは、その最終的な「custom1 = myvalue」が存在する場合のみであるということです。

custom1=myvalue:の代わりに、一致する文字列のオプションの終わりを追加できます
(?i)password(?-i)=.+?((?= (?i)custom(?-i)\d+=)|$)

「password =」を削除して、実際のパスワードのみを使用できる場合のボーナスポイント。

一致する場合は後読みを使用しますpassword=
(?<=(?i)password(?-i)=).+?((?= (?i)custom(?-i)\d+=)|$)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

PCRE正規表現の先読み

分類Dev

Redshift /正規表現(負の先読み)が機能しない

分類Dev

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

分類Dev

間に空白がない負の先読み正規表現

分類Dev

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

分類Dev

特定の単語が存在する場合を除いて、特定の正規表現に一致します(先読みまたは後読み)

分類Dev

正規表現の負の先読み^。+(?!\ _ \ d {3} $)が機能しない

分類Dev

先読みのある正規表現がPythonで一致しない

分類Dev

正規表現の交換先読み

分類Dev

正規表現(負の先読み)

分類Dev

正規表現の先読み

分類Dev

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

分類Dev

単語の否定的な先読みの予期しない結果(R正規表現)

分類Dev

必要な文字列を除外しない正規表現の負の先読み

分類Dev

gitcommitメッセージのBash先読み正規表現が機能しない "^ [AZ](?!。* ed)。* $"

分類Dev

正規表現の先読みまたは後読みの式

分類Dev

大文字の.NET正規表現の否定的な先読み

分類Dev

pcregrep正規表現の前向きな先読みが機能しないのはなぜですか?

分類Dev

正規表現での先読みと後読み

分類Dev

先読みと後読みの正規表現

分類Dev

Javaによる正規表現の先読みと後読み

分類Dev

正規表現の負の先読みアサーション

分類Dev

後読みと先読みが機能しないPython正規表現

分類Dev

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

分類Dev

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

分類Dev

.NET正規表現先読みカスタム行の継続

分類Dev

String replaceAllのJava正規表現:否定的な先読みが期待どおりに機能しない

分類Dev

正規表現の前向きな先読みが期待どおりに機能しない

Related 関連記事

  1. 1

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

  2. 2

    PCRE正規表現の先読み

  3. 3

    Redshift /正規表現(負の先読み)が機能しない

  4. 4

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

  5. 5

    間に空白がない負の先読み正規表現

  6. 6

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

  7. 7

    特定の単語が存在する場合を除いて、特定の正規表現に一致します(先読みまたは後読み)

  8. 8

    正規表現の負の先読み^。+(?!\ _ \ d {3} $)が機能しない

  9. 9

    先読みのある正規表現がPythonで一致しない

  10. 10

    正規表現の交換先読み

  11. 11

    正規表現(負の先読み)

  12. 12

    正規表現の先読み

  13. 13

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

  14. 14

    単語の否定的な先読みの予期しない結果(R正規表現)

  15. 15

    必要な文字列を除外しない正規表現の負の先読み

  16. 16

    gitcommitメッセージのBash先読み正規表現が機能しない "^ [AZ](?!。* ed)。* $"

  17. 17

    正規表現の先読みまたは後読みの式

  18. 18

    大文字の.NET正規表現の否定的な先読み

  19. 19

    pcregrep正規表現の前向きな先読みが機能しないのはなぜですか?

  20. 20

    正規表現での先読みと後読み

  21. 21

    先読みと後読みの正規表現

  22. 22

    Javaによる正規表現の先読みと後読み

  23. 23

    正規表現の負の先読みアサーション

  24. 24

    後読みと先読みが機能しないPython正規表現

  25. 25

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

  26. 26

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

  27. 27

    .NET正規表現先読みカスタム行の継続

  28. 28

    String replaceAllのJava正規表現:否定的な先読みが期待どおりに機能しない

  29. 29

    正規表現の前向きな先読みが期待どおりに機能しない

ホットタグ

アーカイブ