R语言抓字符删重match

x7<-read.table("xue17.txt")

xx7<-x7[x7[,5]>9,1]  

xx7如下:

> xx7
 [1] 04:41 04:56 05:11 05:26 05:41 05:56 06:11 06:34 06:26 06:41 07:00 06:56
[13] 07:23 07:12 07:32 07:27 07:42 07:57 08:24 08:11 08:26 08:41 09:02 08:57
[25] 09:12 09:27 09:47 09:42 09:57 10:12 10:27 10:44 10:42 11:04 10:58 11:13
[37] 11:35 11:27 11:42 12:01 12:05 12:08 12:09 11:58 12:13 12:15 12:17 12:13
[49] 13:13 13:28 13:43 13:43 13:58 14:13 14:39 14:28 14:43 14:58 15:13 15:37
[61] 15:28 15:43 15:43 15:58 16:23 16:14 16:34 16:29 16:44 17:01 16:59 17:14
[73] 17:42 17:29 17:49 17:44 18:00 18:06 17:59 18:14 18:29 18:52 18:44
134 Levels: 00:11 00:26 00:41 00:56 01:11 01:26 01:41 01:56 02:11 ... 23:47

xx7<-strtrim(xx7,2)  ##抓取每个字符串的前两个字符

xx7<-xx7[!duplicated(xx7)]  ##删除重复元素

x7<-read.table("xue17.txt")
xx8<-x8[x8[,5]>9,1]                
xx8<-strtrim(xx8,2)
xx8<-xx8[!duplicated(xx8)]

xx9<-x9[x9[,5]>9,1]                 
xx9<-strtrim(xx9,2)
xx9<-xx9[!duplicated(xx9)]

xx9[match(xx8[match(xx7,xx8)],xx9)]->re   ##注意match得到的是第二个变量中match到的地址

na.omit(re)[1:length(na.omit(re))]->ree   ##删除NA值

 ree
 [1] "04" "05" "06" "10" "11" "12" "13" "14" "15" "16" "17" "18"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Go 语言中,可以使用正则表达式来匹配字符串中的日期。可以使用 Go 语言标准库中的 "regexp" 包来实现正则匹配。示例代码如下: ``` package main import ( "fmt" "regexp" ) func main() { text := "The date is 2020-05-19" pattern := `\d{4}-\d{2}-\d{2}` match, _ := regexp.MatchString(pattern, text) fmt.Println(match) // true } ``` 上面的代码用正则表达式匹配字符串中的日期格式。其中, `\d{4}-\d{2}-\d{2}` 为匹配四个数字-两个数字-两个数字的格式,如果想要匹配其他格式的日期,可以修改正则表达式. ### 回答2: Go语言中可以使用正则表达式来获取匹配的日期。首先,我们需要使用正则包(regexp)来进行正则表达式的操作。具体步骤如下: 1. 首先,我们需要将待匹配的字符串转换为正则表达式的模式。例如,如果要匹配年份、月份和日期的格式,可以使用`(\d{4})-(\d{2})-(\d{2})`作为正则表达式的模式。 2. 接下来,我们需要使用`Compile`函数将正则表达式模式编译为Regexp对象。例如,可以使用`reg := regexp.MustCompile("(\\d{4})-(\\d{2})-(\\d{2})")`来编译模式。 3. 然后,我们可以使用`FindStringSubmatch`函数来查找匹配的日期。该函数会返回一个字符串切片,包含所有匹配的日期。例如,可以使用`matches := reg.FindStringSubmatch(str)`来查找所有匹配的日期。 4. 最后,我们可以遍历切片`matches`,并提取出匹配的日期。例如,可以使用`year := matches[1]`、`month := matches[2]`、`day := matches[3]`来提取出年份、月份和日期。 下面是一个完整的示例代码: ```go package main import ( "fmt" "regexp" ) func main() { str := "今天是2022-03-30,明天是2022-03-31。" reg := regexp.MustCompile(`(\d{4})-(\d{2})-(\d{2})`) matches := reg.FindStringSubmatch(str) for i, match := range matches { fmt.Printf("Match %d: %s\n", i, match) } } ``` 以上代码将输出: ``` Match 0: 2022-03-30 Match 1: 2022 Match 2: 03 Match 3: 30 Match 0: 2022-03-31 Match 1: 2022 Match 2: 03 Match 3: 31 ``` 以上就是使用Go语言字符串中正则获取匹配的日期的方法。 ### 回答3: 在Go语言中,我们可以使用正则表达式(regexp包)来获取匹配的日期。首先,我们需要导入regexp包,并且使用正则表达式来定义日期的匹配规则。例如,我们可以使用以下正则表达式来匹配日期: `(\d{4})-(\d{2})-(\d{2})` 其中,`\d{4}`代表匹配四位数字,`\d{2}`代表匹配两位数字。括号用于分组匹配。接下来,我们可以使用regexp包中的函数来进行匹配操作。以下是一个简单的示例代码: ```go package main import ( "fmt" "regexp" ) func main() { dateStr := "Today is 2022-01-01 and tomorrow is 2022-01-02." pattern := `(\d{4})-(\d{2})-(\d{2})` r, _ := regexp.Compile(pattern) match := r.FindStringSubmatch(dateStr) if len(match) > 0 { year := match[1] month := match[2] day := match[3] fmt.Println("Matched date:", year, month, day) } else { fmt.Println("No date found.") } } ``` 在上述代码中,我们使用了FindStringSubmatch函数来获取第一个匹配的日期字符串,并将其保存在match切片中。如果有匹配的日期,则通过match切片可以获取年、月、日。最后,我们打印匹配的日期信息。如果没有找到匹配的日期,则打印提示信息。 需要注意的是,上述示例代码只会获取第一个匹配的日期。如果需要获取所有匹配的日期,可以使用FindAllStringSubmatch函数,并在循环中处理每个匹配的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值