5

私は正規表現で非常に錆びており、完全修飾ドメイン名(FQDN)からホスト名を抽出する必要があります。これが私が持っているものの例です。

myhostname.somewhere.env.com
myotherhostname.somewhereelse.insomeotherplace.byh.info

帰りたい

myhostname
myotherhostname

本当に助けていただければ幸いです

私は試し"(.+)\."ましたが、右からの文字列と一致し、生成されました:

myhostname.somewhere.env.
myotherhostname.somewhereelse.insomeotherplace.byh.
4

6 に答える 6

3

この再表現を使用してください(.+?)(?=\.)

于 2012-07-10T14:27:06.130 に答える
3

次の最初のグループが必要です。

([^.]*).*

または、次の最初の一致:

[^.]*

または、次からの唯一の一致:

^[^.]*
于 2016-05-11T20:24:50.270 に答える
0

あなたは近くにいます、あなたは?それを貪欲にならないようにするために追加する必要があります。試合の最初のグループを選択するだけです

(.+?)\.

ただし、すでに示唆されているように、おそらくaで分割し、分割された.配列から最初の項目を取得する必要があります。正規表現はコストがかかる可能性があります

于 2012-07-10T14:27:13.300 に答える
0

これはどう?

^(\w+)(\.\w+)*$

regexplanetでテストできます

于 2012-07-10T14:32:17.713 に答える
0
host.split('.').last(2).join('.')
于 2014-03-05T21:16:53.580 に答える
0
/^[^.]+/gm

https://regex101.com/r/jW3lC5/1

読み取り:行の先頭の後に1つ以上の非ピリオド文字が続きます。グローバル(複数一致)の場合は「g」、^各行の先頭で最初の一致を行う「マルチラインモード」の場合は「m」。

于 2016-04-04T20:27:05.537 に答える