Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

Those who can, do; those who can't, simulate.


devel / comp.lang.java.programmer / Handle delimiter in read message

SubjectAuthor
* Handle delimiter in read messagemike
`* Handle delimiter in read messagemike
 +* Handle delimiter in read messagemike
 |`* Handle delimiter in read messagemike
 | +- Handle delimiter in read messageEric Sosman
 | `- Handle delimiter in read messageArne_Vajhøj
 `- Handle delimiter in read messageStanimir Stamenkov

1
Handle delimiter in read message

<43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=417&group=comp.lang.java.programmer#417

  copy link   Newsgroups: comp.lang.java.programmer
X-Received: by 2002:ac8:4e42:0:b0:2f4:fc3c:b0c8 with SMTP id e2-20020ac84e42000000b002f4fc3cb0c8mr15205253qtw.684.1653286181207;
Sun, 22 May 2022 23:09:41 -0700 (PDT)
X-Received: by 2002:a4a:d48c:0:b0:35e:aa26:b720 with SMTP id
o12-20020a4ad48c000000b0035eaa26b720mr8203299oos.12.1653286180935; Sun, 22
May 2022 23:09:40 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.java.programmer
Date: Sun, 22 May 2022 23:09:40 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=83.253.144.66; posting-account=1c_fOgoAAADuOXlL0A4-T9PUmVHtMSYd
NNTP-Posting-Host: 83.253.144.66
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
Subject: Handle delimiter in read message
From: mikaelpetterson@hotmail.com (mike)
Injection-Date: Mon, 23 May 2022 06:09:41 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2439
 by: mike - Mon, 23 May 2022 06:09 UTC

Hi,

We receive a message called "chunked message" in NETCONF.
Example:

final String MSG_REPLY = "#877\r\n"
+
"<rpc-reply message-id=\"1\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"
+
"##\r\n";

I tried:

String newline = System.getProperty("line.separator");//make sure I get newline for platform.
return sb.toString().contains(newline + "##" + newline);

But it fails. Is it possible to check if the string ends with a regex pattern?

//mike

Re: Handle delimiter in read message

<08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=418&group=comp.lang.java.programmer#418

  copy link   Newsgroups: comp.lang.java.programmer
X-Received: by 2002:a05:620a:3711:b0:6a3:83ff:11dc with SMTP id de17-20020a05620a371100b006a383ff11dcmr2683059qkb.685.1653298320219;
Mon, 23 May 2022 02:32:00 -0700 (PDT)
X-Received: by 2002:a05:6808:16:b0:32b:3c3e:647d with SMTP id
u22-20020a056808001600b0032b3c3e647dmr2010952oic.191.1653298319963; Mon, 23
May 2022 02:31:59 -0700 (PDT)
Path: i2pn2.org!rocksolid2!i2pn.org!aioe.org!pasdenom.info!nntpfeed.proxad.net!feeder1-1.proxad.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.java.programmer
Date: Mon, 23 May 2022 02:31:59 -0700 (PDT)
In-Reply-To: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=83.253.144.66; posting-account=1c_fOgoAAADuOXlL0A4-T9PUmVHtMSYd
NNTP-Posting-Host: 83.253.144.66
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
Subject: Re: Handle delimiter in read message
From: mikaelpetterson@hotmail.com (mike)
Injection-Date: Mon, 23 May 2022 09:32:00 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: mike - Mon, 23 May 2022 09:31 UTC

måndag 23 maj 2022 kl. 08:09:48 UTC+2 skrev mike:
> Hi,
>
> We receive a message called "chunked message" in NETCONF.
> Example:
>
> final String MSG_REPLY = "#877\r\n"
> +
> "<rpc-reply message-id=\"1\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"
> +
> "##\r\n";
>
> I tried:
>
> String newline = System.getProperty("line.separator");//make sure I get newline for platform.
> return sb.toString().contains(newline + "##" + newline);
>
> But it fails. Is it possible to check if the string ends with a regex pattern?
>
> //mike

I even checked the ASCII in my buffer.

ASCII numbers is:

10 LF
35 #
35 #
10 LF

I changed my regexp:

sb.toString().matches("(?s).*\\r\\n|\\n##\\r\\n|\\n$")

but it still evaluates to false. I suspect it is DOT ALL that gives me the headache.

//mike

Re: Handle delimiter in read message

<71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=419&group=comp.lang.java.programmer#419

  copy link   Newsgroups: comp.lang.java.programmer
X-Received: by 2002:a05:6214:b64:b0:461:c493:7d72 with SMTP id ey4-20020a0562140b6400b00461c4937d72mr16187556qvb.46.1653299999335;
Mon, 23 May 2022 02:59:59 -0700 (PDT)
X-Received: by 2002:a05:6870:11cd:b0:e5:e565:9185 with SMTP id
13-20020a05687011cd00b000e5e5659185mr11948295oav.251.1653299999106; Mon, 23
May 2022 02:59:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.java.programmer
Date: Mon, 23 May 2022 02:59:58 -0700 (PDT)
In-Reply-To: <08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=83.253.144.66; posting-account=1c_fOgoAAADuOXlL0A4-T9PUmVHtMSYd
NNTP-Posting-Host: 83.253.144.66
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com> <08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>
Subject: Re: Handle delimiter in read message
From: mikaelpetterson@hotmail.com (mike)
Injection-Date: Mon, 23 May 2022 09:59:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3396
 by: mike - Mon, 23 May 2022 09:59 UTC

måndag 23 maj 2022 kl. 11:32:07 UTC+2 skrev mike:
> måndag 23 maj 2022 kl. 08:09:48 UTC+2 skrev mike:
> > Hi,
> >
> > We receive a message called "chunked message" in NETCONF.
> > Example:
> >
> > final String MSG_REPLY = "#877\r\n"
> > +
> > "<rpc-reply message-id=\"1\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"
> > +
> > "##\r\n";
> >
> > I tried:
> >
> > String newline = System.getProperty("line.separator");//make sure I get newline for platform.
> > return sb.toString().contains(newline + "##" + newline);
> >
> > But it fails. Is it possible to check if the string ends with a regex pattern?
> >
> > //mike
> I even checked the ASCII in my buffer.
>
> ASCII numbers is:
>
> 10 LF
> 35 #
> 35 #
> 10 LF
>
> I changed my regexp:
>
> sb.toString().matches("(?s).*\\r\\n|\\n##\\r\\n|\\n$")
>
> but it still evaluates to false. I suspect it is DOT ALL that gives me the headache.
>
> //mike

Even tried this to make sure I have only four last characters of my string..

String endofMsg = sb.toString().substring(sb.toString().length() - 4);

return endofMsg.matches("^\\r\\n|[\\n]##\\r\\n|[\\n]$");

Re: Handle delimiter in read message

<2353f4c2-b2a5-4036-9a7f-8be371b9c446n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=420&group=comp.lang.java.programmer#420

  copy link   Newsgroups: comp.lang.java.programmer
X-Received: by 2002:a05:622a:1212:b0:2f3:bd14:1ec6 with SMTP id y18-20020a05622a121200b002f3bd141ec6mr16115133qtx.342.1653305683166;
Mon, 23 May 2022 04:34:43 -0700 (PDT)
X-Received: by 2002:a05:6870:e9a8:b0:f2:852:616a with SMTP id
r40-20020a056870e9a800b000f20852616amr8679485oao.163.1653305682883; Mon, 23
May 2022 04:34:42 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.java.programmer
Date: Mon, 23 May 2022 04:34:42 -0700 (PDT)
In-Reply-To: <71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=83.253.144.66; posting-account=1c_fOgoAAADuOXlL0A4-T9PUmVHtMSYd
NNTP-Posting-Host: 83.253.144.66
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
<08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com> <71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2353f4c2-b2a5-4036-9a7f-8be371b9c446n@googlegroups.com>
Subject: Re: Handle delimiter in read message
From: mikaelpetterson@hotmail.com (mike)
Injection-Date: Mon, 23 May 2022 11:34:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3865
 by: mike - Mon, 23 May 2022 11:34 UTC

måndag 23 maj 2022 kl. 12:00:06 UTC+2 skrev mike:
> måndag 23 maj 2022 kl. 11:32:07 UTC+2 skrev mike:
> > måndag 23 maj 2022 kl. 08:09:48 UTC+2 skrev mike:
> > > Hi,
> > >
> > > We receive a message called "chunked message" in NETCONF.
> > > Example:
> > >
> > > final String MSG_REPLY = "#877\r\n"
> > > +
> > > "<rpc-reply message-id=\"1\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"
> > > +
> > > "##\r\n";
> > >
> > > I tried:
> > >
> > > String newline = System.getProperty("line.separator");//make sure I get newline for platform.
> > > return sb.toString().contains(newline + "##" + newline);
> > >
> > > But it fails. Is it possible to check if the string ends with a regex pattern?
> > >
> > > //mike
> > I even checked the ASCII in my buffer.
> >
> > ASCII numbers is:
> >
> > 10 LF
> > 35 #
> > 35 #
> > 10 LF
> >
> > I changed my regexp:
> >
> > sb.toString().matches("(?s).*\\r\\n|\\n##\\r\\n|\\n$")
> >
> > but it still evaluates to false. I suspect it is DOT ALL that gives me the headache.
> >
> > //mike
> Even tried this to make sure I have only four last characters of my string.
>
> String endofMsg = sb.toString().substring(sb.toString().length() - 4);
>
> return endofMsg.matches("^\\r\\n|[\\n]##\\r\\n|[\\n]$");

I found out I can do:

String endofMsg = sb.toString().substring(sb.toString().length() - 6);
return endofMsg.matches("\\r\\n##\\r\\n|.*\\n##\\n$");

I had to use the last 6 characters since newline is different for each platform.

//mike

Re: Handle delimiter in read message

<t6g608$hha$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=421&group=comp.lang.java.programmer#421

  copy link   Newsgroups: comp.lang.java.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: esosman@comcast-dot-net.invalid (Eric Sosman)
Newsgroups: comp.lang.java.programmer
Subject: Re: Handle delimiter in read message
Date: Mon, 23 May 2022 10:33:44 -0400
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <t6g608$hha$1@dont-email.me>
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
<08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
<71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>
<2353f4c2-b2a5-4036-9a7f-8be371b9c446n@googlegroups.com>
<4ceef2dc-8924-4ab2-b400-73066308a83cn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 23 May 2022 14:33:44 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="fd81672387d2a5d92fdd31d0fc542958";
logging-data="17962"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+nApRnAIhFxeJLIZi6zqqp"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Cancel-Lock: sha1:xDaIoewCgbO89KGuXRZYrqMBPwE=
In-Reply-To: <4ceef2dc-8924-4ab2-b400-73066308a83cn@googlegroups.com>
X-Antivirus-Status: Clean
Content-Language: en-US
X-Antivirus: AVG (VPS 220523-0, 5/22/2022), Outbound message
 by: Eric Sosman - Mon, 23 May 2022 14:33 UTC

On 5/23/2022 9:31 AM, e.d.pro...@gmail.com wrote:
>> I found out I can do:
>>
>> String endofMsg = sb.toString().substring(sb.toString().length() - 6);
>> return endofMsg.matches("\\r\\n##\\r\\n|.*\\n##\\n$");
>>
>> I had to use the last 6 characters since newline is different for each platform.
>>
>> //mike
>
> I'm not clear what is the problem you're trying to solve, but System.getProperty("line.separator") is system dependent, so if you're running that on one system to get a value to use on a different system, your value will be wrong if the systems are different. *nix uses \n for linefeed, Windows uses \r\n , so you're checking for the presence of \n if you want to check for a linefeed.

Also (if I recall correctly), various Internet RFC's require CR-LF
line terminators, regardless of the system sending the lines. I don't
know whether mike's messages follow such a protocol, but many do.

His best bet may be to recognize all of CR, LF, and CR-LF as line
terminators, and maybe even LF-CR as well.

--
esosman@comcast-dot-net.invalid
Look on my code, ye Hackers, and guffaw!

--
This email has been checked for viruses by AVG.
https://www.avg.com

Re: Handle delimiter in read message

<628ba668$0$693$14726298@news.sunsite.dk>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=422&group=comp.lang.java.programmer#422

  copy link   Newsgroups: comp.lang.java.programmer
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
Date: Mon, 23 May 2022 11:21:12 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Subject: Re: Handle delimiter in read message
Content-Language: en-US
Newsgroups: comp.lang.java.programmer
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
<08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
<71e3ac9a-032a-42d5-b509-884e36908b81n@googlegroups.com>
<2353f4c2-b2a5-4036-9a7f-8be371b9c446n@googlegroups.com>
From: arne@vajhoej.dk (Arne Vajhøj)
In-Reply-To: <2353f4c2-b2a5-4036-9a7f-8be371b9c446n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 84
Message-ID: <628ba668$0$693$14726298@news.sunsite.dk>
Organization: SunSITE.dk - Supporting Open source
NNTP-Posting-Host: ebb94e7a.news.sunsite.dk
X-Trace: 1653319272 news.sunsite.dk 693 arne@vajhoej.dk/68.9.63.232:60785
X-Complaints-To: staff@sunsite.dk
 by: Arne Vajhøj - Mon, 23 May 2022 15:21 UTC

On 5/23/2022 7:34 AM, mike wrote:
> måndag 23 maj 2022 kl. 12:00:06 UTC+2 skrev mike:
>> måndag 23 maj 2022 kl. 11:32:07 UTC+2 skrev mike:
>>> måndag 23 maj 2022 kl. 08:09:48 UTC+2 skrev mike:
>>>> We receive a message called "chunked message" in NETCONF.
>>>> Example:
>>>>
>>>> final String MSG_REPLY = "#877\r\n"
>>>> +
>>>> "<rpc-reply message-id=\"1\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"
>>>> +
>>>> "##\r\n";
>>>>
>>>> I tried:
>>>>
>>>> String newline = System.getProperty("line.separator");//make sure I get newline for platform.
>>>> return sb.toString().contains(newline + "##" + newline);
>>>>
>>>> But it fails. Is it possible to check if the string ends with a regex pattern?
>>>>
>>>> //mike
>>> I even checked the ASCII in my buffer.
>>>
>>> ASCII numbers is:
>>>
>>> 10 LF
>>> 35 #
>>> 35 #
>>> 10 LF
>>>
>>> I changed my regexp:
>>>
>>> sb.toString().matches("(?s).*\\r\\n|\\n##\\r\\n|\\n$")
>>>
>>> but it still evaluates to false. I suspect it is DOT ALL that gives me the headache.
>>>
>> Even tried this to make sure I have only four last characters of my string.
>>
>> String endofMsg = sb.toString().substring(sb.toString().length() - 4);
>>
>> return endofMsg.matches("^\\r\\n|[\\n]##\\r\\n|[\\n]$");
>
> I found out I can do:
>
> String endofMsg = sb.toString().substring(sb.toString().length() - 6);
> return endofMsg.matches("\\r\\n##\\r\\n|.*\\n##\\n$");
>
> I had to use the last 6 characters since newline is different for each platform.

This seems to work:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EndTest {
private static final Pattern re =
Pattern.compile("^#\\d+\\v+(.*)##\\v+$", Pattern.MULTILINE +
Pattern.DOTALL);
public static void test(String s) {
System.out.println(s);
Matcher m = re.matcher(s);
if(m.find()) {
System.out.println("Match: " + m.group(1));
} else {
System.out.println("No match");
}
}
public static void main(String[] args) {
test("ABC");
String msg = "#877\r\n"
+
"<rpc-reply message-id=\"1\"
xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><data
xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><netconf-server
xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-server\"><listen><endpoint><name>default-ssh</name><ssh><tcp-server-parameters><local-address>0.0.0.0</local-address><keepalives><idle-time>1</idle-time><max-probes>10</max-probes><probe-interval>5</probe-interval></keepalives></tcp-server-parameters><ssh-server-parameters><server-identity><host-key><name>default-key</name><public-key><keystore-reference>genkey</keystore-reference></public-key></host-key></server-identity><client-authentication><supported-authentication-methods><publickey/><passsword/><other>interactive</other></supported-authentication-methods><users/></client-authentication></ssh-server-parameters></ssh></endpoint></listen></netconf-server></data></rpc-reply>\r\n"

+
"##\r\n";
test(msg);
}
}

Arne

Re: Handle delimiter in read message

<t7obs5$vmi$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=423&group=comp.lang.java.programmer#423

  copy link   Newsgroups: comp.lang.java.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: s7an10@netscape.net (Stanimir Stamenkov)
Newsgroups: comp.lang.java.programmer
Subject: Re: Handle delimiter in read message
Date: Tue, 7 Jun 2022 23:19:17 +0300
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <t7obs5$vmi$1@dont-email.me>
References: <43d5ea21-6264-4b24-ab0c-32c27cdc09c2n@googlegroups.com>
<08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 7 Jun 2022 20:19:17 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="10dd7b6bb88950614e277fa77d258fe9";
logging-data="32466"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+wF4xc2rcFKQsv1a0ch9vO"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101
SeaMonkey/2.53.12
Cancel-Lock: sha1:WioDGyXxox6aT5eXg+I5tcPWLCI=
In-Reply-To: <08d72ee6-dd98-46ab-a0b8-ae683996b3d8n@googlegroups.com>
X-Face: (5^k'[FumQ)D<K'|!m[XIPQMS<@?TEycd`Km]m}j3#aOh6s=*7pqVp9T7Ru-9J1NJ?j64h(
vkoM85W+lY%wgItKb-w3OV/yK:?0GO])wfroz}>/*_,+2"Ax+MLyw-[=}5`U9T`X4>1ky(A:/OBmW0
N~qm3*Yo0^iugH;XTH;'lGWv}@;U!P\.:7v;~BU;X<pmnyTVy+VuYy_""nw6{`Q?_;Q_y.q2zQ=>mX
wB`d4DX><96a<oQ[>T}f6v}i7oU}bzwjzX`q.yUbgV:+=Zt<A"Kb?P8-0t2N92
Autocrypt: addr=s7an10@netscape.net; keydata=
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
bpzpzw==
Openpgp: preference=signencrypt
 by: Stanimir Stamenkov - Tue, 7 Jun 2022 20:19 UTC

Mon, 23 May 2022 02:31:59 -0700 (PDT), /mike/:

> I changed my regexp:
>
> sb.toString().matches("(?s).*\\r\\n|\\n##\\r\\n|\\n$")
>
> but it still evaluates to false. I suspect it is DOT ALL that gives me the headache.

Maybe you really mean (note the grouping):

sb.toString().matches("(?s).*(\\r\\n|\\n##\\r\\n|\\n)$")

or even:

sb.toString().matches("(?s).*\\r?\\n(##\\r?\\n?)?$")

--
Stanimir

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor