gpt4 book ai didi

python - RegEx 忽略注释行。

转载 作者:行者123 更新时间:2023-11-30 22:51:23 26 4
gpt4 key购买 nike

我正在尝试解析以下文本

# ---------------------------------------------------------------------------- #
# Packages
# ---------------------------------------------------------------------------- #

set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_1_test_1_qip.vhd"]
set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_2_test_1_qip.vhd"]
set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_3_test_1_qip.vhd"]

# Register Tool set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_INVALID_test_1_qip.vhd"]

# ---------------------------------------------------------------------------- #
# Sub Modules
# ---------------------------------------------------------------------------- #

set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) "module_test_2.qip"]
set_global_assignment -name QIP_FILE [file join $::quartus(qip_path) "module_test_3.qip"]

# ---------------------------------------------------------------------------- #
# Module Files
# ---------------------------------------------------------------------------- #

set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_4_test_1_qip.vhd"]
set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "file_5_test_1_qip.vhd"]

使用正则表达式:

(?<=_FILE).*"(.+)"

这也可以正常工作,并为我提供上面文本中的所有文件名,但它也为我提供已注释掉的行的文件名。

我试图制作一个正则表达式来忽略这一点,但我无法让它工作。

这是我尝试过的

(?<!#)(?:(?<=_FILE).+"(.+)")

请查看 RegEx 101

问候埃弗瑞尔

最佳答案

要忽略注释行,您必须从行的开头开始匹配,并匹配除 # 之外的任何内容:

^[^#\n]*(?:(?<=_FILE).+"(.+)")

或者只是

^[^#\n]*_FILE.+"(.+)"

两种模式都需要多行标志m

关于python - RegEx 忽略注释行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39037782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com