0

.php 関数の本体の開始を見つけるという簡単なタスクを解決するために、regEx の一致を取得できませんでしたが、試してみました。これが私が仕事をすることになっていることです:

import re
print re.search(r"addToHead(){", "addToHead(){\n\tcode...").group()
# addToHead is the function I'm looking for.
  # --> AttributeError: 'NoneType' object has no attribute 'group'
print re.search(r"addToHead()\{", "addToHead(){\n\tcode...").group()
  # Nor backslashing or double backslash works.
print re.search(r"addToHead()[\{]", "addToHead(){\n\tcode...").group()
print re.search(r"addToHead()[\x7b]", "addToHead(){\n\tcode...").group()
# Noting works...am I missing something??

re.DOTALLまた、同じ不快な結果で試しました。私は神経質に座っていますか?それともバグ..?

4

2 に答える 2

1

ブラケット()は、正規表現で一致した文字列を論理的にグループ化するために使用されます。基本的に、正規表現では特別な意味を持ちます。()したがって、のように括弧をエスケープする必要があります\(\)

print re.search(r"addToHead\(\){", "addToHead(){\n\tcode...").group()

出力

addToHead(){
于 2013-11-08T09:04:19.030 に答える
0

ああ、質問を投稿してから 1 分後に見つけたのですが、中括弧ではなく、標準の括弧でした...まあ、質問を削除する必要がありますが、[メタ質問] はできますか?過去の失明の記録としてアクセスできますか?

于 2013-11-08T09:07:24.300 に答える