Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于部分模式对值进行子集设置_R_Regex - Fatal编程技术网

R 基于部分模式对值进行子集设置

R 基于部分模式对值进行子集设置,r,regex,R,Regex,我正在尝试使用正则表达式(url:happy_to-learn.com)进行子集划分 由于我对regex真的很陌生,有人能帮我解释一下为什么我的代码不起作用吗 x <- c("happy_to-learn.com", "His_is-omitted.net") str_subset(x, "^[a-zA-Z](\\_|\\-)*\\.com$") x我们需要用+指定一个或多个,因为\或-不在第一个字母之后 str_subset(x, "^[a-zA-Z]+(\\_|\\-).*\\.co

我正在尝试使用正则表达式(url:happy_to-learn.com)进行子集划分

由于我对regex真的很陌生,有人能帮我解释一下为什么我的代码不起作用吗

x <- c("happy_to-learn.com", "His_is-omitted.net")
str_subset(x, "^[a-zA-Z](\\_|\\-)*\\.com$")

x我们需要用
+
指定一个或多个,因为
\
-
不在第一个字母之后

str_subset(x, "^[a-zA-Z]+(\\_|\\-).*\\.com$")
#[1] "happy_to-learn.com"

另外,
*
引用零个或多个字符,因为
可以是字符串结尾(
$
)的
和'com'之前的任何字符

为什么使用外部包<代码>grep也可以这样做

grep("^[[:alpha:]_-]+.*\\.com$", x, value = TRUE)
#[1] "happy_to-learn.com"
解释

  • “^”
    标记字符串的开头
  • “[:alpha://code>以可移植的方式匹配任何字母字符,大写或小写
  • “^[:alpha:][-][+”
    []
    之间,有可供选择的字符可匹配重复的一次或多次。字母或下划线
    -
    或减号
    -
  • “^[:alpha:][u-]+.*”
    以上字符后跟任何重复零次或多次的字符
  • “^[:alpha:][u-]+.\\\\\.com$”
    以字符串
    “.com”
    结尾,其中点不是元字符,因此必须转义

  • 你能解释一下。后面的)是什么意思吗?这一位是什么意思?
    [a-zA-Z]
    它与[a-Z][a-Z]相似吗?@NelsonGon。它表示从a到Z的大写字母还是小写字母