需要处理 TCL 正则表达式的指导



我需要处理一个介于两者之间的字符".."的随机字符串。如下所示

一个。。b/c..德/法-格.xyz..美国广播公司..定义..123

..如何使用正则表达式获取这些".."之间的数据?(此字符串可以是任意长度,我需要获取每个中间数据集以进行进一步处理)。请用这个指导我。

谢谢!

如果字符串中没有换行符,您可以通过以下方式获得字符串列表:

set in a..b/c..de/f-g..xyz..abc..def..123..
set out [split [string map {.. n} $in] n]]

对于这类事情,特别是如果拆分项比问题中的项更复杂,可以考虑的一种工具是 Tcllib 中的textutil::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列表的末尾生成一个空元素,因为有一个终止分隔符。

您可以使用此正则表达式:

[^..]

这将匹配所有未..的字符。

最新更新