替换 R 中的多个字符串间隔
Replacing multiple string intervals in R
我目前正在处理一个包含两行 header 行的数据(第一行作为整体类别描述,第二行包含子类别。恰好两者都包含各种 <text>
区间。例如:
在第一行(数据框的列名)中,我有一个单元格包含:
- 文本... <span style=\"text-decoration: underline;\">in the office</span> on the activities below. Total must add up to 100%. <br /><br />
第二行包含多个单元格:
- 文本 <strong>
- 文本 </strong>
现在,我能够通过以下方式弄清楚如何删除第二行中的所有 <text>
间隔:
data[1,] = gsub("<.*>", "", data[1,])
但是,对于列名行,如果我使用:
colnames(data) = gsub("<.*>", "",colnames(data))
我最终只得到 "text",这是我不想要的。由于事实,我仍然想要:
text... in the office on the activities below. Total must add up to 100%
如果有人知道如何解决它。非常感谢。
谢谢!
您当前的正则表达式是 greedy 并且正在消耗第一个左括号和最后一个右括号之间的所有内容。一种快速解决方法是使用 ?
:
使您的正则表达式不贪婪
data[1,] = gsub("<.*?>", "", data[1,])
请注意,使用正则表达式解析 HTML 通常不是一个好主意。如果您打算对嵌套内容做任何事情,那么您应该考虑使用可以解析 HTML 内容的 R 包。
您可以通过以下方式更改您正在使用的正则表达式来获得所需内容:
colnames(data) <- gsub("<[^>]+>", "",colnames(data))
这将删除开始和结束标签之间的所有内容(包括标签)。那应该给你你想要的。
我目前正在处理一个包含两行 header 行的数据(第一行作为整体类别描述,第二行包含子类别。恰好两者都包含各种 <text>
区间。例如:
在第一行(数据框的列名)中,我有一个单元格包含:
- 文本... <span style=\"text-decoration: underline;\">in the office</span> on the activities below. Total must add up to 100%. <br /><br />
第二行包含多个单元格:
- 文本 <strong>
- 文本 </strong>
现在,我能够通过以下方式弄清楚如何删除第二行中的所有 <text>
间隔:
data[1,] = gsub("<.*>", "", data[1,])
但是,对于列名行,如果我使用:
colnames(data) = gsub("<.*>", "",colnames(data))
我最终只得到 "text",这是我不想要的。由于事实,我仍然想要:
text... in the office on the activities below. Total must add up to 100%
如果有人知道如何解决它。非常感谢。
谢谢!
您当前的正则表达式是 greedy 并且正在消耗第一个左括号和最后一个右括号之间的所有内容。一种快速解决方法是使用 ?
:
data[1,] = gsub("<.*?>", "", data[1,])
请注意,使用正则表达式解析 HTML 通常不是一个好主意。如果您打算对嵌套内容做任何事情,那么您应该考虑使用可以解析 HTML 内容的 R 包。
您可以通过以下方式更改您正在使用的正则表达式来获得所需内容:
colnames(data) <- gsub("<[^>]+>", "",colnames(data))
这将删除开始和结束标签之间的所有内容(包括标签)。那应该给你你想要的。