어떻게 텍스트 파일에서 '$'기호로 모든 단어를 추출 할 수 있습니까?특정 문자열을 추출하는 방법은 파이썬에서 텍스트 파일의 기호로 시작하나요?
$severity
$description
$eventID
$eventURL
$alertLevel
$eventStart
$eventSourceCount
$eventSourceTable
$eventDestCount
어떻게 텍스트 파일에서 '$'기호로 모든 단어를 추출 할 수 있습니까?특정 문자열을 추출하는 방법은 파이썬에서 텍스트 파일의 기호로 시작하나요?
$severity
$description
$eventID
$eventURL
$alertLevel
$eventStart
$eventSourceCount
$eventSourceTable
$eventDestCount
사용 regex
: -
파일 A (ASCII)>
@ExtendedAttr = nvp_add(@ExtendedAttr, "severity", $severity,
"description", $description, "eventID", $eventID,
"eventURL", $eventURL, "alertLevel", $alertLevel,
"eventStart", $eventStart,
"eventSourceCount", $eventSourceCount, "eventSourceTable",
$eventSourceTable, "eventDestCount", $eventDestCount)
나는 출력 (모든 새로운 라인)과 같이되고 싶어
>>> import re
>>> with open('filename') as f:
... ans = []
... for line in f:
... matches = re.findall(r'(?<!\w)(\$\w+)', line)
... ans.extend(matches)
...
>>> print ans
['$severity', '$description', '$eventID', '$eventURL', '$alertLevel', '$eventStart', '$eventSourceCount', '$eventSourceTable', '$eventDestCount']
이제 예상 출력을 얻으려면 str.join
을 사용하십시오.
>>> print "\n".join(ans)
$severity
$description
$eventID
$eventURL
$alertLevel
$eventStart
$eventSourceCount
$eventSourceTable
$eventDestCount
$
(대개 라인 엔드)의 이스케이프 처리가 \
인 정규식을 사용하십시오.
import re
with open("filename", "r") as f:
... matches = re.findall("(\$\w+)", f.read())
print matches
이것은 또한 ''foo는 $의 bar'' 전체를 읽는 일치합니다 파일은 보통 좋은 생각이 아닙니다. –
(또한 가독성이 강화의 또 다른 라인에 추출 할 수있는)
f.read()
로 한 번에 전체 파일을 읽고 난 다음과 같은 텍스트가있는 경우 : – user2671444