Sphinx拡張で使おうと思っている正規表現のメモ。
思い付く限りのパターンを試して、問題ないことを確認したサンプル。
サンプル
#!/usr/bin/python
import re
regex = re.compile(r'([ ]*)((.*?)\|)*([^_]*)((_)([0-9a-z]*)?)?')
ps = []
ss = [
"読み1|用語1",
"読み2|用語2_120a3",
"読み3|用語3_",
"読み4|用語4_120a3あいうえお",
"読み5|用語5_あいうえお",
"用語6",
"用語7_120a3",
"用語8_",
"用語9_120a3あいうえお",
"用語A_あいうえお",
" 読み1|用語1",
" 読み2|用語2_120a3",
" 読み3|用語3_",
" 読み4|用語4_120a3あいうえお",
" 読み5|用語5_あいうえお",
" 用語6",
" 用語7_120a3",
" 用語8_",
" 用語9_120a3あいうえお",
" 用語A_あいうえお",
" 読み1|用語1",
" 読み2|用語2_120a3",
" 読み3|用語3_",
" 読み4|用語4_120a3あいうえお",
" 読み5|用語5_あいうえお",
" 用語6",
" 用語7_120a3",
" 用語8_",
" 用語9_120a3あいうえお",
" 用語A_あいうえお",
]
for s in ss:
p = regex.match(s)
print(p.groups())