在python中,我如何创建一个正则表达式来捕获这个正则表达式模式r(?!^no_|_no_)like_thi(?:s|)"
之前和之后的内容
因为"like_thi(?:s|)"
前面不能有"(?!^not_|_not_)"
。?!
是一个“负先行”。它用于对字符串中的模式执行负Assert。
下面的正则表达式模式不适合我
import re
test_string = "ohh_you_not_like_this_things_yet" #case 1
test_string = "not_like_this_things_yet" #case 2
test_string = "ohh_younot_like_this_things_yet" #case 3
a, b = "", ""
regex_pattern = r"(.*)(?!^not_|_not_)like_thi(?:s|)(.*)\s*=\s*"
match = re.search(regex_pattern, line, flags=re.IGNORECASE)
if match:
print("detect pattern!!!\n"
a = match.group(1).strip()
b = match.group(2).strip()
#print results
print(a)
print(b)
对于我使用的捕获组,.*
是一种模式,它表示任何重复零次或多次的字符(除了换行符)。
预期结果将是:
#case 1
""
""
#case 2
""
""
#case 3
detect pattern!!!
"ohh younot "
" things yet"
我修改代码以使代码正确工作?
1条答案
按热度按时间qyswt5oh1#
你可以用
参见regex demo。
(?<![_\s]not_)
-紧挨着左边,不应该有_not_
或空格+not_
(?<!^not_)
-在左边,字符串的开头不应该有not_
like_this?
-like_thi
和可选的s