在Emacs中,我想使用正则表达式匹配
等行List of symbols
List of symbols
List of symbols
并且不匹配以数字开头的行或(
(前面有零或多个空格),例如
1. Arithmetic and Algebra
1. Arithmetic and Algebra
(a) Powers
(a) Powers
但^ *[^[:digit:](]
或^[[:space:]]*[^[:digit:](]
可以匹配
1. Arithmetic and Algebra
(a) Powers
每行开头都有空格。
我想知道我哪里错了?感谢。
答案 0 :(得分:1)
您可以将其缩小为匹配不以数字开头的行 或括号括起来。
^[^[:digit:](]
答案 1 :(得分:0)
为什么会这样?
因为回溯!
" "
(空格)可以0 or more
次出现,因此对于以0
开头且下一个字符为space
的字段为non digit
(这是*+
现在是一个空间)。因此,它在开始时将模式与空间相匹配。如何克服?
使用*
(贪婪和占有) ..这将使possessive
(贪婪)^ *+[^[:digit:](\s]
↑
也
工作正则表达式:
<?xml version="1.0"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ExtensionData />
<Name>ali</Name>
<Age>37</Age>
<Father>
<ExtensionData />
<Name>I</Name>
<Age>72</Age>
</Father>
<Mother>
<ExtensionData />
<Name>M</Name>
<Age>62</Age>
</Mother>
</Person>
请参阅DEMO