获取一些数据但不是全部使用正则表达式
Get some data but not all using regex
我有一些这样的数据:
disconnected, received disassoc: sending station leaving (8)
disconnected, 4-way handshake timeout
disconnected, too weak signal, signal strength -91
disconnected, registered to other interface
我想得到没有数字和括号的原因。
所以不要包含任何 (x)
或 -xx
,其中 x 是数字(最后)
输出应该是
received disassoc: sending station leaving
4-way handshake timeout
too weak signal, signal strength
registered to other interface
我想我需要看一下但不确定。
这不起作用:
disconnected, (?<reason>.*)( -\d+)?
原因还是会包括-91
这只给出带有 -xx 或 (x) 的行,缺少其余行
disconnected, (?<reason>.+(?=-\d+|\(\d\)))
这会给出所有行,但还会在原因中包含 -xx 和 (x)
disconnected, (?<reason>.+(?=-\d+|\(\d\))?)
PS -xx
和 (x)
总是在最后所以可以使用锚点 $
您可以使用带有可选非捕获组的交替来匹配字符串末尾的两个选项。
该值在命名的捕获组中 reason
。
disconnected, (?<reason>.*?)(?:\(\d+\)| -\d+)?$
部分
disconnected,
匹配断开,space
(?<reason>.*?)
命名捕获组 reason
,尽可能少地匹配任何字符
(?:
非捕获组
\(\d+\)
匹配括号中的1+位数字
|
或
-\d+
匹配一个space-
和1+个数字
)?
关闭群组并设为可选
$
字符串结束
我有一些这样的数据:
disconnected, received disassoc: sending station leaving (8)
disconnected, 4-way handshake timeout
disconnected, too weak signal, signal strength -91
disconnected, registered to other interface
我想得到没有数字和括号的原因。
所以不要包含任何 (x)
或 -xx
,其中 x 是数字(最后)
输出应该是
received disassoc: sending station leaving
4-way handshake timeout
too weak signal, signal strength
registered to other interface
我想我需要看一下但不确定。
这不起作用:
disconnected, (?<reason>.*)( -\d+)?
原因还是会包括-91
这只给出带有 -xx 或 (x) 的行,缺少其余行
disconnected, (?<reason>.+(?=-\d+|\(\d\)))
这会给出所有行,但还会在原因中包含 -xx 和 (x)
disconnected, (?<reason>.+(?=-\d+|\(\d\))?)
PS -xx
和 (x)
总是在最后所以可以使用锚点 $
您可以使用带有可选非捕获组的交替来匹配字符串末尾的两个选项。
该值在命名的捕获组中 reason
。
disconnected, (?<reason>.*?)(?:\(\d+\)| -\d+)?$
部分
disconnected,
匹配断开,space(?<reason>.*?)
命名捕获组reason
,尽可能少地匹配任何字符(?:
非捕获组\(\d+\)
匹配括号中的1+位数字|
或-\d+
匹配一个space-
和1+个数字
)?
关闭群组并设为可选$
字符串结束