2

「..」という文字が間にあるランダムな文字列を処理する必要があります。以下のように

a..b / c..de/fg..xyz..abc..def..123。。

正規表現を使用してこれらの「..」間のデータを取得するにはどうすればよいですか?(この文字列は任意の長さにすることができ、さらに処理するために各中間データセットを取得する必要があります)。これで案内してください。

ありがとう!

4

3 に答える 3

6

文字列に改行がない場合は、次の文字列のリストを取得できます。

set in a..b/c..de/f-g..xyz..abc..def..123..
set out [split [string map {.. \n} $in] \n]]
于 2012-10-24T19:30:33.937 に答える
1

この種のことを考慮するための1つのツールは、特に分割項が問題の項よりも複雑な場合、Tcllibtextutil::splitパッケージです。これにより、次のように正規表現で文字列を分割できます。

package require textutil::split

set sample "a..b/c..de/f-g..xyz..abc..def..123.."
set RE {\.\.};  # “.” is an RE metacharacter, and so needs to be escaped
set pieces [textutil::split::splitx $sample $RE]

上記ではpieces、終了セパレーターがあるため、リストの最後に空の要素も生成されます。

于 2012-10-25T08:37:40.763 に答える
0

この正規表現を使用できます:

[^..]

これは、ではないすべての文字に一致します..

于 2012-10-24T20:01:37.910 に答える