source= "<br />, systemd-system.conf(5), locale.conf(5),<br /> systemctl(1), journalctl(1), systemd-notify(1), daemon(7),sd-<br /> daemon(3), systemd.unit(5), systemd.special(5), pkg-config(1), kernel-<br /> command-line(7), bootup(7), systemd.directives(7)"
source= sub(compile(r"([\, ]+)(?:([A-Za-z\.\-]+))?(?:(<br /> {7}))?([A-Za-z\.\-]*)(\([0-9]\))", DOTALL), r"\1[\2]\3[\4\5]", source)
有了這個,我得到無與倫比的組錯誤。
但在regex101.com這給條件組替代
<br />, [systemd-system.conf][(5)], [locale.conf][(5)],[]<br /> [systemctl(1)], [journalctl][(1)], [systemd-notify][(1)], [daemon][(7)],[sd-]<br /> [daemon(3)], [systemd.unit][(5)], [systemd.special][(5)], [pkg-config][(1)], [kernel-]<br /> [command-line(7)], [bootup][(7)], [systemd.directives][(7)]
結果,並不完全是一個我期待。
我需要
<br />, [systemd-system.conf(5)], [locale.conf(5)],<br /> [systemctl(1)], [journalctl(1)], [systemd-notify(1)], [daemon(7)],<br /> [sd-daemon(3)], [systemd.unit(5)], [systemd.special(5)], [pkg-config(1)], <br /> [kernel-command-line(7)], [bootup(7)], [systemd.directives(7)]
你有兩個答案無可匹敵的組,因爲它是不可能與我的,因爲所有組是強制性的(沒有'(?:)') – Math 2015-03-13 12:06:12
如果
未找到,我只有一個組。這將由Python的3.5版本解決。 http://python.readthedocs.org/en/latest/library/re.html - 版本3.5中更改:不匹配的組被替換爲空字符串。 – Mauricio 2015-03-13 12:29:05
這是jimmy_keen的正則表達式的問題,有什麼關於我的(數學),這是你想要的東西太簡單了? – Math 2015-03-13 12:56:06