我有一份看起来像这样的文件:
# Document ID 8934
# Last updated 2018-05-06
52 84 12 70 23 2 7 20 1 5
4 2 7 81 32 98 2 0 77 6
(..and so on..)
换句话说,它从一些注释行开始,然后文档的其余部分只是一串用空格分隔的数字。
我试图编写一个正则表达式,它可以在所有不以#开头的行上获取所有数字,但我似乎无法得到它。
我已经阅读了诸如
之类的答案Regex: Find a character anywhere in a document but only on lines that begin with a specific word
并抓住http://regular-expressions.info等网站,但我仍然无法获得有效的表达方式(我能得到的最好的版本是^[^#].*
那么如何匹配字符串中的数字(或文本或其他内容),但仅限于不以某个字符开头的行?
答案 0 :(得分:1)
你的正则表达式User
使用一个否定的character class,它与字符串hasOne
的开头不匹配belongsTo
,之后匹配任何字符零次或多次。
例如,这也会匹配^[^#].*
您可能会使用alternation来匹配以#开头的整行#
或在一个或多个数字组中捕获^
您的数字被捕获到第1组。您可以将t test
更改为例如字符类^#.*$
,以匹配多个数字。
<强>详情
(\d+)
非捕获组
(\d+)
从第([\w+.]+)
行#开头匹配,后跟任意字符零{或更多次(?:
,直至字符串^#.*$
结束^
或.*
捕获群组中的一个或多个数字$
关闭非捕获组答案 1 :(得分:0)
我认为一种更简单的方法是用&#34;&#34;替换线条。首先使用这个正则表达式:
^#.*
然后您可以将所有数字与此匹配:
-?\d+ (-? is for negative)