一個非常微不足道的問題 - 嘗試了幾次迭代,仍然無法得到正確的答案。也許「grep」不是正確的命令,或者我的理解完全失敗。準確字符串匹配
我有一個字符串:
"Part 2.2 are Secondary objectives of this study".
我試圖做一個精確匹配:「二級目標」。我以爲我可以在這裏使用「fixed = TRUE」,但它與兩者都匹配。
> str5 = "Part 2.2 are Secondary objectives of this study"
> line<-grep("Secondary objectives",str5,fixed=TRUE)
> line
[1] 1
> str5 = "Part 2.2 are Secondary objectives of this study"
> line<-grep("Secondary objective",str5,fixed=TRUE)
> line
[1] 1
據我所知,「grep」的操作與其應該完全相同。它正在搜索字符串「輔助目標」,這在技術上是原始字符串中的。但是我的理解是我可以使用「fixed = TRUE」命令完成匹配,但顯然我錯了。
如果「grep」與「fixed = TRUE」不是完全匹配的正確命令,工作?「str_match」也沒有工作 如果我的模式是:「次要目標」,它應該返回「整數(0)」 但如果我的模式是「次要目標」,它應該返回1.
任何輸入,非常感謝感謝很多 - 西馬克
更新:!下面試行阿倫的建議 - 爲工作正常是。
str5 = "Part 2.2 are Secondary objectives of this study"
> grep("(Secondary objectives)(?![[:alpha:]])",str5, perl=TRUE)
[1] 1
> grep("(Secondary objective)(?![[:alpha:]])",str5, perl=TRUE)
integer(0)
STR5 = 「2.2部分是本研究的次要目標」 grep的( 「(PAT)([[:阿爾法:]]?!)」,STR5,PERL = TRUE) 整數( 0)
However when I did this:
> str5 = "Part 2.2 are Secondary objectives of this study"
> pat <- "Secondary objectives"
> grep("(pat)(?![[:alpha:]])",str5, perl=TRUE)
integer(0)
Thought I can call "pat" inside "grep". Is that incorrect? Thanks!
我告訴你這樣做:'拍< - paste0( 「(」, 「次要目標」, 「)」, 「?!([:阿爾法:]])」)'並嘗試'grep(pat,str5,perl = TRUE)' – Arun
是的,試過了。 Did not work either ..... – BRZ
你是什麼意思不起作用?它給了'次級目標'的'整數(0)'和'次級目標'的'1'。對我來說這似乎很好! – Arun