找回密码
 注册
查看: 3785|回复: 0

R语言:regmatches()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-2-17 10:16:56 | 显示全部楼层 |阅读模式
regmatches(base)
regmatches()所属R语言包:base

                                        Extract or Replace Matched Substrings
                                         提取或替换匹配的子字符串

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Extract or replace matched substrings from match data obtained by regexpr, gregexpr or regexec.
regexpr,gregexpr或regexec的匹配数据中提取或替换匹配的子字符串。


用法----------Usage----------


regmatches(x, m, invert = FALSE)
regmatches(x, m, invert = FALSE) <- value



参数----------Arguments----------

参数:x
a character vector
字符向量


参数:m
an object with match data
匹配数据的对象


参数:invert
a logical: if TRUE, extract the non-matched substrings.
一个逻辑:如果TRUE,提取不匹配的子字符串。


参数:value
an object with suitable replacement values for the matched or non-matched substrings (see Details).
一个合适的替代值匹配或不匹配的子串的对象(见Details)。


Details

详情----------Details----------

If invert is TRUE (default), regmatches extracts the matched substrings as specified by the match data.  For vector match data (as obtained from regexpr), empty matches are dropped; for list match data, empty matches give empty components (zero-length character vectors).
如果invert是TRUE(默认),regmatches提取匹配的比赛数据由指定的子串。为向量匹配的数据(从regexpr),空场比赛都将被丢弃;列表的匹配数据,空场比赛给空组件(零长度字符向量)。

If invert is FALSE, regmatches extracts the non-matched substrings, i.e., the strings are split according to the matches similar to strsplit (for vector match data, at most a single split is performed).
invert如果是FALSE,regmatches提取的非匹配的子串,即根据strsplit(矢量匹配数据,在最相似的匹配字符串分割执行一个单一的分裂)。

Note that the match data can be obtained from regular expression matching on a modified version of x with the same numbers of characters.
请注意,可以从定期对修改后的版本了x字符相同的号码匹配表达式得到匹配数据。

The replacement function can be used for replacing the matched or non-matched substrings.  For vector match data, if invert is TRUE, value should be a character vector with length the number of matched elements in m.  Otherwise, it should be a list of character vectors with the same length as m, each as long as the number of replacements needed.  Replacement coerces values to character or list and generously recycles values as needed. Missing replacement values are not allowed.
可用于替换匹配或不匹配的子串替换功能。为向量的匹配数据,如果invert是TRUE,value应该是一个长度的字符向量m匹配的元素数量。否则,它应该是一个特征向量的长度相同的列表m,每个如需要更换。更换胁迫值的字符或列表,并慷慨地回收所需要的值。缺少替代值是不允许的。


值----------Value----------

For regmatches, a character vector with the matched substrings if m is a vector and invert is FALSE.  Otherwise, a list with the matched or non-matched substrings.
regmatches,一个匹配的子字符串的字符向量如果m是一个向量和invert是FALSE。否则,匹配或不匹配的子串的名单。

For regmatches<-, the updated character vector.
对于regmatches<-,更新的特征向量。


举例----------Examples----------


x <- c("A and B", "A, B and C", "A, B, C and D", "foobar")
pattern <- "[[:space:]]*(,|and)[[:space:]]"
## Match data from regexpr()[#匹配正则表达式的(数据)]
m <- regexpr(pattern, x)
regmatches(x, m)
regmatches(x, m, invert = TRUE)
## Match data from gregexpr()[#匹配数据gregexpr()]
m <- gregexpr(pattern, x)
regmatches(x, m)
regmatches(x, m, invert = TRUE)

## Consider[#考虑]
x <- "John (fishing, hunting), Paul (hiking, biking)"
## Suppose we want to split at the comma (plus spaces) between the[#假设我们要在逗号之间的分裂(加空格)]
## persons, but not at the commas in the parenthesized hobby lists.[#人,而不是逗号,括号的爱好列表。]
## One idea is to "blank out" the parenthesized parts to match the[#一个想法是“空白”括号部分匹配]
## parts to be used for splitting, and extract the persons as the[#可用于分裂,部分提取作为的人]
## non-matched parts.[#不匹配的部分。]
## First, match the parenthesized hobby lists.[#首先,匹配括号的爱好列表。]
m <- gregexpr("\\([^)]*\\)", x)
## Write a little utility for creating blank strings with given numbers[#写的一个小工具创建空白字符串与给定的数字]
## of characters.[#字符。]
blanks <- function(n) {
     vapply(Map(rep.int, rep.int(" ", length(n)), n, USE.NAMES = FALSE),
           paste, "", collapse = "")
}
## Create a copy of x with the parenthesized parts blanked out.[#创建一个x的副本与括号的部分空白。]
s <- x
regmatches(s, m) <- Map(blanks, lapply(regmatches(s, m), nchar))
s
## Compute the positions of the split matches (note that we cannot call[#计算分割匹配的位置(注意,我们不能称之为]
## strsplit() on x with match data from s).[#strsplit(x的比赛数据))。]
m <- gregexpr(", *", s)
## And finally extract the non-matched parts.[#最后提取的非匹配的部分。]
regmatches(x, m, invert = TRUE)

转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-22 22:49 , Processed in 0.025200 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表