[英]Python regex to search substring in multiline string variable
我正在嘗試在多行字符串變量中搜索一組單詞。 我可以這樣做
>>> test_1 = """--Comment
... /*Comment*/
... MERGE fhkjfsk lkfjs;lfks;f
... hdkjdkd
... fjlkf
... """
>>> m = re.search(r"(insert|merge|update|delete)\s*", test_1, re.IGNORECASE)
>>> print(m)
<_sre.SRE_Match object; span=(22, 28), match='MERGE '>
但我只想匹配那些不以“--”或“/*”開頭的行中的單詞。 所以我不希望以下匹配:
>>> test_1 = """--Comment
... /*Comment*/
... --MERGE fhkjfsk lkfjs;lfks;f
... hdkjdkd
... fjlkf
... """
>>> m = re.search(r"(insert|merge|update|delete)\s*", test_1, re.IGNORECASE)
>>> print(m)
<_sre.SRE_Match object; span=(24, 30), match='MERGE '>
這就是我無法上班的原因。 我努力了:
>>> test_1 = """--Comment
... /*Comment*/
... --MERGE fhkjfsk lkfjs;lfks;f
... INSERT fhskjfsf
... gfdsjhs
... """
>>> m = re.search(r"^(?!--)(insert|merge|update|delete)\s*", test_1, re.IGNORECASE)
>>> print(m)
None
>>>
我想我需要兩個括號之間的東西(?!--)(insert|merge|update|delete)
並嘗試添加
.+ 喜歡(?!--).+(insert|merge|update|delete)
\s* 喜歡(?!--)\s*(insert|merge|update|delete)
. 像(?!--).(insert|merge|update|delete)
.* 喜歡(?!--).*(insert|merge|update|delete)
但它沒有幫助。
任何有關如何使這項工作的建議將不勝感激。
正則表達式很好,但^
僅匹配整個字符串的開頭。 您應該使用re.MULTILINE
使其匹配行的開頭。
re.search(r"^(?!--)(insert|merge|update|delete)\s*", test_1, re.IGNORECASE | re.MULTILINE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.