gpt4 book ai didi

r - R中类(class)编号的REGEX模式匹配

转载 作者:行者123 更新时间:2023-12-02 00:52:33 25 4
gpt4 key购买 nike

我需要确定具有xx.3xxxxxx的匹配 class 号。
这些是 class 编号的一些示例。

26.3730004   
27.0210000
26.3730009
26.7114001
23.9610071
26.0A34430
23.3670005
26.0B05430

我尝试了许多模式,我使用的一个示例是以下模式。没有任何匹配。

“[^ 0-9] {2} \ Q. \ E3 [^ 0-9] + $”

我尝试使用grep和grepl。我实际上需要代码来返回索引。

此代码显示了我尝试标记具有匹配项的行的尝试。
Teacher$virtual[
which(
grepl("[^0-9]{2}\\Q.\\E3[^0-9]+$",Teacher$CourseNumber))]
<- "1"

我需要从数据框中删除具有该模式的 class 编号的任何行。 XX.3XXXXXX
但是,我的代码找不到任何匹配项。你能帮我么?

最佳答案

你应该用

grepl("^[0-9]{2}\\.3", Teacher$CourseNumber)

参见 regex graph:

enter image description here

详细信息:
  • ^-字符串开始
  • [0-9]{2}-两位数
  • \\.-一个点(请注意,正则表达式转义符是字面反斜线,但是在字符串文字"..."中,单个反斜杠用于形成字符串转义序列,因此,反斜杠必须加倍以获得一个正则表达式转义)
  • 3-一个3字符。

  • 注意:如果要对 \Q\E(在所有字符之间按字面处理)使用模式内引用,则需要使用PCRE regex,添加 perl=TRUE并使用
    grepl("^[0-9]{2}\\Q.\\E3", Teacher$CourseNumber, perl=TRUE)

    现在,该点被视为文字点,而不是匹配任何字符的 .元字符,而是换行符(在PCRE正则表达式中,默认情况下 .不匹配换行符)。

    关于r - R中类(class)编号的REGEX模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464094/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com