私は私たち Qt です。関数呼び出しを具体的に探すテキスト文字列がありますxyz.set_name()
。この呼び出しの最後の発生をキャプチャしたいのですが、それを含む行が . で始まる場合は否定します#
。これまでのところ、関数呼び出しに一致する正規表現を取得しましたが、一致した行を否定する方法が#
わかりません。最後の出現をキャプチャする方法もわかりません。すべての一致が1つのキャプチャグループに入れられる理由もわかりません.
[().\w\d]+.set_name\(\)\s*
これは私がやりたいことです
abc.set_name() // match
# abc.set_name() // don't match
xyz.set_name() // match and capture this one
より明確にするための更新:
qDebugで印刷すると、私のテキストはこのように読めます
Hello\nx=y*2\nabc.set_name() \n#xyz.set_name()
\n
改行の長い文字列です。
更新: テスト用のより長いテスト文字列。これについて提案されたすべての正規表現を試しましたが、うまくいきませんでした。何が欠けているのかわからない。
https://regex101.com/r/vXpXIA/1
更新 2: 最初の更新をスクラッチします。正規表現を使用する場合は考慮する必要は\n
ありqDebug()
ません。