![](/img/trans.png)
[英]Python Regex to match a all variations of a keyword except if preceded by a capitalized word
[英]Python Regex for all variations of string except containing certain substring
我需要捕获其中包含<ADDRESS:
string 的代码行。 但是,我只想忽略具有SOME STR <ADDRESS:
的行,即它在<ADDRESS:
之前添加了SOME STR
。 该行前后可能还有其他词。
我尝试识别正则表达式,它似乎适用于用例: https://regex101.com/r/Lc5aKq/1
然而,我无法让它在 Python3 中工作。
方法:
def check(self, file):
regex = r"\(?!.*(SOME STR)\).*\<ADDRESS:*"
print(f'Content once: {file.content}')
for match in re.finditer(regex, file.content, re.DOTALL):
print(f'Regex: {regex}')
print(f'Content: {file.content}')
matched_str_offset = match.start(0)
print(f'Matched offset: {matched_str_offset}')
当执行打印输入文件内容的方法print(f'Content once: {file.content}')
的第二行时,我得到以下正确的文件内容,包括引号:
ADDR = "<ADDRESSS:qwerty>"
objA = PremilinaryObject(
code_seg = """<ADDRESSS:qwerty> --paramX=valueX"""
)
objB = PremilinaryObject(
code_seg = ADDR + """/xyz """
)
objC = PremilinaryObject(
code_seg = """SOME STR <ADDRESSS:qwerty>/abc.par --paramX=valueX"""
)
objD = PremilinaryObject(
bash_script= """SOME STR blah blah blah"""
)
但是,for 循环中的打印语句不会执行,这意味着他的正则表达式不匹配。 有什么建议我做错了吗?
您代码中的正则表达式与您的 regex101 示例不匹配。 当您使用r
生成原始字符串时,您不需要对括号进行转义。
所以试试regex = r"(?..*(SOME STR)):*\<ADDRESS:*"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.