`

tango.text.Util 翻译

阅读更多

 

tango.text.Util(r4774)

License:

BSD style: see license.txt

Version:

Apr 2004: Initial release Dec 2006: South Seas version

Author:

Kris

为各种细小的函数预留位置(Placeholder)。这些函数全部被模板化,意在可用于charwchardchar字符数组。不过,它们也可以正确地操作别的数组类型。

这些函数的大多数一个索引值,表示的判断标准已经得到确认。当判断标准不匹配时,函数返回一个表示提供给它们的数组长度的值。也就是说,对于C函数可能典型地返回-1的场景,这些函数返回长度(length)来代替。这个可以同D的切割操作很好的工作:

1
2
3
4
5
auto text = "happy:faces";

assert (text[0 .. locate (text, ':')] == "happy");

assert (text[0 .. locate (text, '!')] == "happy:faces");

contains()函数更便于琐碎的查找情况:

1
2
if (contains ("fubar", '!'))
    ...

注意,某些函数希望一个uint作为参数,如果提供一个int来代替,D模板比较(template-matching)算法会失败。这是典型的"template not found"(模板找不到)错误的原因。也要注意到在当前不能被IFTI支持名称重载,因此在这里也不应用。

为了限制命名空间污染,高度建议应用D的别名导入(import alias)机制来使用这个模块。

1
2
3
import Util = tango.text.Util;

auto s = Util.trim ("  foo ");

函数模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
trim (source)                               // 修剪空白
triml (source)                              // 修剪空白
trimr (source)                              // 修剪空白
strip (source, match)                       // 修剪元素
stripl (source, match)                      // 修剪元素
stripr (source, match)                      // 修剪元素
chopl (source, match)                       // 修剪模式匹配
chopr (source, match)                       // 修剪模式匹配
delimit (src, set)                          // 按定界符分离(delimssplit (source, pattern)                     // 按模式分离
splitLines (source);                        //按行分离 
head (source, pattern, tail)                // 分离到头和尾
join (source, postfix, output)              //结合文字片段
prefix (dst, prefix, content...)            // 把文字片段置于前面
postfix (dst, postfix, content...)          // 把文字片段置于后面
combine (dst, prefix, postfix, content...)  // combine lotsa stuff
repeat (source, count, output)              //重复source(源)
replace (source, match, replacement)        // 替换字符
substitute (source, match, replacement)     // 替换/移除匹配
count (source, match)                       //统计实例
contains (source, match)                    //是否包含字符?
containsPattern (source, match)             // 判断是否包含模式?
index (source, match, start)                //查找匹配索引 
locate (source, match, start)               // 查找字符
locatePrior (source, match, start)          // 查找前面的字符
locatePattern (source, match, start);       // 查找模式
locatePatternPrior (source, match, start);  // 查找前面的模式
indexOf (s*, match, length)                 // 低级查看
mismatch (s1*, s2*, length)                 // 低级比较
matching (s1*, s2*, length)                 // 低级比较
isSpace (match)                             //判断是否是空白?
unescape(source, output)                    //转换' \ '的前缀
layout (destination, format ...)            // 非常轻量级的 printf(格式化输出)
lines (str)                                 // foreach lines
quotes (str, set)                           // foreach quotes
delimiters (str, set)                       // foreach delimiters
patterns (str, pattern)                     // foreach patterns

请注意,在这个模块中谈及的任何'pattern'(模式)都引用一个字符模式,而且不是正则表达式描述符。要使用正则表达式操作使用Regex模块。

T[] trim(T)(T[] source) #
整理提供的数组,从两端剥离空白。返回原始内容的一个切片。
T[] triml(T)(T[] source) #
整理提供的数组,从左边剥离空白。返回原始内容的一个切片。
T[] trimr(T)(T[] source) #
整理提供的数组,从右边剥离空白。返回原始内容的一个切片。
T[] strip(T)(T[] source, T match) #
整理提供的数组,从两端剥离提供的匹配(match)。返回原始内容的一个切片。
T[] stripl(T)(T[] source, T match) #
整理提供的数组,从左手边剥离提供的匹配(match)。返回原始内容的一个切片。
T[] stripr(T)(T[] source, T match) #
整理提供的数组,从右手边剥离提供的匹配(match)。返回原始内容的一个切片。
T[] chopl(T)(T[] source, T[] match) #
通过从左手边剥离提供的匹配(match)切削源。返回原始内容的一个切片。
T[] chopr(T)(T[] source, T[] match) #
通过从右手边剥离提供的匹配(match)切削源。返回原始内容的一个切片。
T[] replace(T)(T[] source, T match, T replacement) #
用另一个元素替换一个元素的所有实例(在合适的地方)。
T[] substitute(T)(T[] source, T[] match, T[] replacement) #
source里替换(Substitute)所有匹配的实例。要移除而不替换就设replacementnull
uint count(T)(T[] source, T[] match) #
统计所有source里匹配的实例。
bool contains(T)(T[] source, T match) #
Returns whether or not the provided array contains an instance of the given match
bool containsPattern(T)(T[] source, T[] match) #
返回提供的数组是否包含给定的match
uint index(T, U = uint)(T[] source, T[] match, U start = 0) #
返回下一个从'start'位置开始的'match'的实例的索引,如果没有匹配(match)就返回source.length。参数'start'默认为0
uint rindex(T, U = uint)(T[] source, T match[] match, U start = uint.max) #
返回就在'start'前开始的前一个匹配实例的索引,如果没有匹配就返回source.length
参数'start'默认source.length
uint locate(T, U = uint)(T[] source, T match, U start = 0) #
返回从位置'start'开始的下一个匹配实例的索引,如没有匹配就返回source.length
参数'start'默认为0
uint locatePrior(T, U = uint)(T[] source, T match, U start = uint.max) #
返回就在'start'前开始的前一个匹配实例的索引,如果没有匹配就返回source.length
参数'start'默认source.length
uint locatePattern(T, U = uint)(T[] source, T[] match, U start = 0) #
返回从位置'start'开始的下一个匹配实例的索引,如没有匹配就返回source.length
参数'start'默认为0
uint locatePatternPrior(T, U = uint)(T[] source, T[] match, U start = uint.max) #
返回就在'start'前开始的前一个匹配实例的索引,如果没有匹配就返回source.length
参数'start'默认source.length
T[] head(T)(T[] src, T[] pattern, out T[] tail) #
按第一个模式实例分离提供的数组,返回合成的头和尾。模式从两个文字片段排除。如果一个文字片段没有找到,尾(tail)会变成null,并且返回值是原始的数组。
T[] tail(T)(T[] src, T[] pattern, out T[] head) #
按最后的模式实例分离提供的数组,返回合成的头和尾。模式从两个文字片段排除。如果一个文字片段没有找到,头(head)会变成null,并且返回值是原始的数组。
T[][] delimit(T)(T[] src, T[] set) #
无论定界符集合在哪里找到都分离提供的数组,返回合成的片段。定界符从每一个片段中排除。注意定界符是作为一个交替集合匹配而不是作为一个模式。按一个简单的定界符分离要比按一个选择集分离快得非常多。

:src内容在这个函数中不被复制,由切割代替。

T[][] split(T)(T[] src, T[] pattern) #
无论模式实例在哪里找到都分离提供的数组,返回合成的片段。模式从每一个片段中排除。
:src内容在这个函数中不被复制,由切割代替。
T[][] splitLines(T)(T[] src) #
转换文字成一系列行,这里的每一行用一个 \n\r\n组合识别。行末端从每个合成数组中剥离。
:src内容在这个函数中不被复制,由切割代替。
T[] join(T)(T[][] src, T[] postfix = null, T[] dst = null) #
合并一系列文字片段到一起,每个片段添加一个后缀模式。一个任选的输出缓冲器可以被提供用来避免堆活动--它应该是大得足以容纳整个输出,否则将用堆来代替。
返回一个输出的有效切片,包含连结文字。
T[] prefix(T)(T[] dst, T[] prefix, T[][] src...) #
合并一系列文字片段到一起,每个片段前置一个前缀模式。一个任选的输出缓冲器可以被提供用来避免堆活动--它应该是大得足以容纳整个输出,否则将用堆来代替。
注意,不像join(),首先要指定输出缓冲区,这样尾随字符串集合可以被提供。
返回一个输出的有效切片,包含连结文字。
T[] postfix(T)(T[] dst, T[] postfix, T[][] src...) #
合并一系列文字片段到一起,每个片段添加一个任选的后缀模式。一个任选的输出缓冲器可以被提供用来避免堆活动--它应该是大得足以容纳整个输出,否则将用堆来代替。
注意,不像join(),首先要指定输出缓冲区,这样尾随字符串集合可以被提供。
返回一个输出的有效切片,包含连结文字。
T[] combine(T)(T[] dst, T[] prefix, T[] postfix, T[][] src...) #
合并一系列文字片段到一起,每个片段前置和/或后置一个任选的字符串。一个任选的输出缓冲器可以被提供用来避免堆活动--它应该是大得足以容纳整个输出,否则将用堆来代替。
注意,不像join(),首先要指定输出缓冲区,这样尾随字符串集合可以被提供。
返回一个输出的有效切片,包含连结文字。
T[] repeat(T, U = uint)(T[] src, U count, T[] dst = null) #
把一个数组重复指定次数。一个任选的输出缓冲器可以被提供用来避免堆活动—它应该是大得足以容纳整个输出,否则将用堆来代替。
返回一个输出的有效切片,包含连结文字。
bool isSpace(T)(T c) #
判断参数是否是一个空白字符?
bool matching(T, U = uint)(T* s1, T* s2, U length) #
返回两个数组是否有匹配内容。
uint indexOf(T, U = uint)(T* str, T match, U length) #
返回str中的第一个匹配的索引,一旦长度达到就失败。注意失败返回 'length' 成功返回以0为基础的索引。
uint mismatch(T, U = uint)(T* s1, T* s2, U length) http://yntcsb.iteye.com/admin
评论

相关推荐

    tango-controls.pdf

    Tango Control System是一种用于控制和监控实验室仪器、望远镜、粒子加速器等复杂设备的控制系统。该系统被广泛应用于科研与工业领域,特别是在物联网及系统集成方面扮演着重要角色。 在搭建Tango Control System时...

    Windows安装TANGO教程.docx

    ### Windows安装TANGO教程知识点详解 #### 一、前言 本教程旨在详细介绍如何在Windows 10操作系统上搭建TANGO环境。TANGO是一种广泛应用于分布式控制系统的框架,尤其适用于科学仪器与工业自动化领域的应用。本文将...

    TangoTagger:Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲

    探戈标签Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲。执照版权所有 :copyright: 2014 Bruno Alfirević 根据 Eclipse 公共许可证分发 1.0 版或(由您选择)任何更高版本。

    谈客视频电话 Tango v3.13.128111

    谈客视频电话 Tango v3.13.128111 更新时间:2015-01-14 版本:3.13.128111 软件语言:多语言 软件类别:网络语音 软件大小:26.18 MB 适用固件:2.1及更高固件 内置广告:没有广告 适用平台:Android Tango为您...

    Tango视频电话 v3.13.127894

    Tango视频电话3.13.127894 Tango Video Calls 大小:26.18MB 更新时间:2015-01-12 Tango为您带来免费的高品质视频通话,在3G和Wi-Fi网络上都运行如飞!全世界数百万用户都在使用妙趣横生又简单易用的Tango视频...

    tango, 微型&可以插入网络框架.zip

    tango, 微型&可以插入网络框架 Tango 软件包探戈是一个微型&可以插入的网页框架。当前版本:v0.5.0 版本的历史记录。正在启动要安装 Tango:go get github.com/lunny/tango

    Python库 | tango-articles-0.12.1.tar.gz

    processed_text = tango_articles.preprocessing(text) # 提取文章内容 summary = tango_articles.content_extraction(article_html) # 获取关键词 keywords = tango_articles.keyword_extraction(text) ``` 四、...

    PyPI 官网下载 | django-tango-0.3.1.tar.gz

    标题"PyPI 官网下载 | django-tango-0.3.1.tar.gz"表明这是一个从Python Package Index (PyPI)官方源下载的软件包,名为"django-tango",版本号为0.3.1,其格式是tar.gz。PyPI是Python社区中最主要的第三方软件库...

    authz:移动了https

    身份验证 authz是的授权中间件,它基于 。 安装 ...简单的例子 package main import ( ... tg := tango .... HandlerFunc ( func ( ctx * tango. Context ) { sess := sessions . Session ( ctx . Req ()

    tango-colors:探戈颜色定义用于python,乳胶和其他..

    如果要在乳胶文档中使用这些探戈颜色,请将tango.sty放在某个可以找到乳胶的地方。 例如,在texmf目录中。 Python 您有两种使用颜色的方法。 如果只需要HTML模型,则可以导入TANGO_HTML_COLORS ,这是探戈颜色的...

    Python库 | tango-comments-0.4.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tango-comments-0.4.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Tango-D2:Tango库到D2的端口

    现在,这意味着基本上所有用户模块(tango.math.BigNum除外,别名为std.bigint,直到另行通知)和大多数tango.core模块都已移植。 doc / examples文件夹中的示例也应该起作用。 我在Linux上进行移植,因此这是经过...

    flume-redis:Flume-Redis添加了源和接收器功能以支持Apache Flume中的Redis

    agent.sources.redisSource.type = com.tango.logstash.flume.redis.source.RedisSource agent.sources.redisSource.host = localhost agent.sources.redisSource.key = logstash agent.sources.redisSource.batch_...

    tango风格的XP主题

    “TANGO的最爱”可能意味着这个主题是对Tango设计风格的一种致敬或特别优化,是Tango风格的忠实体现,因此深受Tango风格爱好者的喜欢。 【标签解析】 “tango”标签直接关联了设计风格,指明了主题的视觉特征。...

    manual-zh-CN:Tango使用指南 Moved to https

    Tango Tango 是一个微内核易扩展的Go语言Web框架,他兼有Beego的效率和Martini的中间件设计。 最近更新 ... tango.JSON } func (Action) Get() interface{} { if true { return map[string]string{

    TangoSDK_Eisa_Unity5.unitypackage

    TangoSDK_Eisa_Unity5.unitypackage

    电路设计软件tango

    《Tango:电路设计软件的历史与应用》 Tango,这款被誉为古老的电路板设计软件,是电子工程领域中的一颗璀璨明星。它以其强大的功能和在DOS操作系统下的独特运行方式,为电路设计者提供了丰富的工具,使得在早期的...

    tango:一个基于React的WordPress主题原型

    将探戈存储git clone git@github.com:kwight/tango.git到您的wp-content/themes/文件夹中: git clone git@github.com:kwight/tango.git cd进入新的Tango主题,然后运行npm install 。 运行npm run build来创建...

    TANGO电路原理图库文件的数据结构分析.pdf

    TANGO电路原理图库文件的数据结构分析 引言: TANGO软件是一个广泛使用的绘图软件,在我国尤其流行。它能绘制电路原理图和印刷电路板图,其数据文件的结构在相关文献中有介绍,但关于库文件的数据结构信息却很少。...

    Tango助手-crx插件

    语言:English,中文 (简体) 自动提取bugly页面的日志数据,并以可读性更高的UI形式展现 自动提取bugly页面的日志数据,并自动弹窗显示;支持多种显示日志方式:1. 自动弹窗提醒;可通过设置,取消自动弹窗提醒(默认...

Global site tag (gtag.js) - Google Analytics