2017-09-20 13 views
-2

テキストの特定の行をカンマまたはリターンで区切って入力する正規表現が必要です。私がしたいことは、テキスト、短い言葉(顧客名)のボディーを持っていて、それぞれ32の名前がそれぞれ1つの列にあることです。私は、列を別の列、例えば5深度に分割したいと思います。この例の最後の列は2深度だけです。私は32の名前のリストをコラムで区切ったり、カンマで区切ったりすることができます。実際には、各列または各列の別々の正規表現が望ましいです。私のリストは、常に1つの名前から60までの名前に変わります。だからもし私が10行目6行目を選べる正規表現があれば、もう1行目は15行目から15行目を選んで素晴らしいものになるでしょう。誰かがそれを行う正規表現を提供できるなら、私はその人を私の人生の残りの部分で愛するでしょう。 :)テキスト行を選択するRegexが必要です

+0

何を試しましたか?入力データと期待される出力を表示する必要があります。どの言語を使用していますか?私たちはあなたの仕事をするのではなく、あなたを助けるためにここにいます。 –

+0

私はEsko Automation Engineというプリプレスワークフローを使用しています。それで私は "スマートな名前"を作ることができます。一部のスマートネームには、正規表現を入力するオプションがあります。前に聞いたことがないので、私はそれを見つけて、最後の7文字を選択する^ [^ \ n] +?([^ \ n] {7})$を考え出すことができました。 128のバーコードを短縮するために使用されます。しかし、さまざまなコピーの行を選択する方法は私の外にあります。 – PAUL

答えて

0

カンマを使用すると正規表現でCSVを解析するパスが表示されますが、データにカンマが含まれていないことがわかっていれば問題ありません。それ以外の場合は、SmartNamesとの複数行一致に関するドキュメントがほとんどないため、これがどれくらいうまく動作するかはわかりません。残念ながら、正規表現エンジンは最初のグループのみを抽出し、非抽出グループのための準備ができていないので、数値限定子は使用できませんが、一致を繰り返す必要があります。うまくいけば、長さの制限はありません。

それでは5を抽出し、6〜10行を抽出し、最初の5つをスキップする:

^.+\n.+\n.+\n.+\n.+\n(.+\n.+\n.+\n.+\n.+\n) 

あなたはコンマを使用している場合は、単に,\nを交換してください。 、^で始まり、第n + yを線次いで).+\n(Y + 1)倍、(に入れ.+\n(N-1)回、追加 - 一般に

は、n番目を抽出します。そこで11行目から15行目を抽出するには、

^.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n.+\n(.+\n.+\n.+\n.+\n.+\n) 
関連する問題