using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"[\s\S]{25}(?<log_level>\w+ \d).---.\[Thread-(?<thread_id>\d+)][\s\S]{42}(?(?=: debug1): (?<internal_log_level>\w+)): (?(?=(?:.*?): )(?<module>.*?): )(?<message>.*)";
string input = @"2020-03-24 07:23:26.506 INFO 6 --- [Thread-3853] S.s.ssh-output : Allocated port 40239 for remote forward to localhost:8192
2020-03-24 07:23:26.458 INFO 6 --- [Thread-3853] S.s.ssh-output : Authenticated to tunnel.alero.io ([3.225.55.134]:443).
2020-03-24 07:23:25.972 INFO 6 --- [Thread-3853] S.s.ssh-output : OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
2020-03-24 07:22:55.949 INFO 6 --- [Thread-3851] S.s.ssh-output : ssh_exchange_identification: Connection closed by remote host
2020-03-26 14:50:11.591 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 1: connected to localhost port 8192
2020-03-26 14:50:11.591 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: confirm forwarded-tcpip
2020-03-26 14:50:11.591 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 1: new [192.168.33.160]
2020-03-26 14:50:11.591 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: connect_next: host localhost ([127.0.0.1]:8192) in progress, fd=5
2020-03-26 14:50:11.589 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_request_forwarded_tcpip: listen 0.0.0.0 port 40239, originator 192.168.33.160 port 37440
2020-03-26 14:50:11.589 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_input_channel_open: ctype forwarded-tcpip rchan 2 win 2097152 max 32768
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: connected to localhost port 8192
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: confirm forwarded-tcpip
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: new [192.168.62.96]
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: connect_next: host localhost ([127.0.0.1]:8192) in progress, fd=4
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_request_forwarded_tcpip: listen 0.0.0.0 port 40239, originator 192.168.62.96 port 59736
2020-03-26 14:50:11.372 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_input_channel_open: ctype forwarded-tcpip rchan 1 win 2097152 max 32768
2020-03-26 14:50:10.872 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: free: 192.168.62.96, nchannels 2
2020-03-26 14:49:11.329 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: connected to localhost port 8192
2020-03-26 14:49:11.329 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: confirm forwarded-tcpip
2020-03-26 14:49:11.329 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: new [192.168.62.96]
2020-03-26 14:49:11.329 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: connect_next: host localhost ([127.0.0.1]:8192) in progress, fd=4
2020-03-26 14:49:11.328 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_request_forwarded_tcpip: listen 0.0.0.0 port 40239, originator 192.168.62.96 port 58296
2020-03-26 14:49:11.328 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: client_input_channel_open: ctype forwarded-tcpip rchan 1 win 2097152 max 32768
2020-03-26 14:49:10.875 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 0: free: 192.168.33.160, nchannels 2
2020-03-26 14:49:03.819 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 1: free: 192.168.33.160, nchannels 3
2020-03-26 14:48:49.820 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 8: free: 192.168.62.96, nchannels 4
2020-03-26 14:48:49.820 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 7: free: 192.168.62.96, nchannels 5
2020-03-26 14:48:49.820 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 5: free: 192.168.33.160, nchannels 6
2020-03-26 14:48:49.819 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 3: free: 192.168.33.160, nchannels 7
2020-03-26 14:48:49.819 INFO 6 --- [Thread-3853] S.s.ssh-output : debug1: channel 2: free: 192.168.33.160, nchannels 8";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx