这是我的测试代码:
\thinhline
\\[-16pt]
Jacobi
& $\JacobiP{\alpha}{\beta}{n}@{x}$
& $(-1,1)$
& $(1 - x)^{\alpha} (1 + x)^{\beta}$
& $\begin{cases} \ifrac{2^{\alpha+\beta+1}\EulerGamma@{\alpha+1}\EulerGamma@{\beta+1}}{\EulerGamma@{\alpha+\beta+2}}, &\text{$n = 0$} \end{cases}$
& $\begin{cases} \ifrac{2^{\alpha+\beta+1}\EulerGamma@{\alpha+1}\EulerGamma@{\beta+1}}{\EulerGamma@{\alpha+\beta+2}}, & \text{$n = 0$}\end{cases}$
& $\dfrac{\pochhammer{n+\alpha+\beta+1}{n}}{2^n n!}$
& $\dfrac{n (\alpha-\beta)}{2n+\alpha+\beta}$
& $\alpha,\beta > -1$
\\
\thinhline
\\[-16pt]
Ultraspherical(Gegenbauer)
& $\Ultraspherical{\lambda}{n}@{x}$
& $(-1,1)$
& $(1 - x^2)^{\lambda-\frac{1}{2}}$
& $\dfrac{2^{1-2\lambda} \pi \EulerGamma@{n+2\lambda}}
{(n+\lambda) \left( \EulerGamma@{\lambda} \right)^2 n!}$
& $\dfrac{2^n \pochhammer{\lambda}{n}}{n!}$ & $0$
& $\lambda > -\tfrac{1}{2}, \lambda \ne 0 $
\\
我创建了一个模式来识别“\ thinhline \\ [ - 16pt]”和“\\”之间的所有模式。
我如何找到以&符号开头的行的行数,“&”,找到模式的实例?
例如,我希望为示例代码返回此内容:
Jacobi: 8
Ultraspherical(Gegenbauer): 6
答案 0 :(得分:1)
使用^\s*&
(MULTILINE
)标记尝试此正则表达式re.M
:
import re
text = """
& $\Ultraspherical{\lambda}{n}@{x}$
& $(-1,1)$
& $(1 - x^2)^{\lambda-\frac{1}{2}}$
& $\dfrac{2^{1-2\lambda} \pi \EulerGamma@{n+2\lambda}}
{(n+\lambda) \left( \EulerGamma@{\lambda} \right)^2 n!}$
& $\dfrac{2^n \pochhammer{\lambda}{n}}{n!}$ & $0$
& $\lambda > -\tfrac{1}{2}, \lambda \ne 0 $
"""
print(len(re.findall('^\s*&', text, re.M)))
打印6,这是以&
答案 1 :(得分:1)
怎么样:
import re
s = text.split('\\thinhline\n\\\\[-16pt]\n')[1:]
res = [re.split("\n\s*&", a) for a in s]
[a[0] + ": " + str(len(a)-1) for a in res]
#['Jacobi: 8', 'Ultraspherical(Gegenbauer): 6']
答案 2 :(得分:1)
for i,line enumerate(my_text.splitlines(),1):
if line.strip().startswith("&"):
print line,"On line",i
可能是你想要的...我不认为正则表达式是这个
的正确答案