R:从字符串中删除序号指示符(“ st”,“ nd”,“ rd”,“ th”),同时保留数字

时间:2018-09-22 16:33:28

标签: r regex gsub

尝试了gsub函数,但它代替了字母数字文本,而不仅仅是剥离了'th'部分。

 <iframe id="myframe" src="https://google.ca"></iframe>

 <script>
 myframe.onload = function(){
 var that = document.getElementById('myframe');

 try{
    (that.contentWindow||that.contentDocument).location.href;
 }
 catch(err){
    //err:SecurityError: Blocked a frame with origin "http://*********" from accessing a cross-origin frame.
    console.log('err:'+err);
}
}
</script>

所需的输出:

  

“罗洛街11号”

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

gsub("(\\d)(st|nd|rd|th)\\b", "\\1", x)

详细信息:
\\\\d匹配任意数字
(st|nd|rd|th)匹配任何后缀
组周围的括号将它们变成可以用\\ 1,\\ 2等恢复的“捕获组”。因此,我的表达式将查找一个数字,后跟您的一个后缀,然后仅将其替换为数字。

答案 1 :(得分:0)

或使用str_remove

library(stringr)
str_remove(x, "(?<=[0-9])(st|nd|rd|th)")
#[1] "11 Rollo Street"