为什么用于标点符号的 R gsub (或 regexp)不能获取所有标点符号?

2024-03-14

我正在清理基于文本的数据文件,但无法弄清楚为什么gsub("[[:punct:]]", "", X1)没有给出所有标点符号的匹配。不幸的是,我无法在这里复制这个问题,这让我认为这是一个字符编码问题——有问题的标点符号的外观与标准 ASCII 明显不同。

这是我读入文件后就可以解决的问题,还是我必须在前端做一些事情?例如,哈德利的post https://stackoverflow.com/questions/13496059/how-to-determine-the-correct-file-encoding-for-use-with-read-fwf-or-use-a-worka关于编码问题让我认为我在读取文件时需要指定编码语句。但是,我正在从一个文件夹中读取一堆不同的 txt 文件,所以我不确定最好的解决方案。基本上,我只想保留所有字母 [A-Za-z] 并排除其他所有字母。 (也就是说,gsub([^A-Za-z], "", X1)也不起作用!)

任何有关处理此问题的建议将不胜感激!


标点符号可能超出了 ascii 范围。默认情况下[[:punct:]]仅包含 ascii 标点符号。但是您可以使用以下命令将类扩展为 unicode(*UCP)指示。但这还不够,您需要通知正则表达式引擎它必须将目标字符串读取为 utf 编码字符串(*UTF) (否则多字节编码的字符将被视为几个单字节字符). So:

gsub("(*UCP)(*UTF)[[:punct:]]", "", X1, perl=T)

注意:这两个指令仅存在于 perl 模式中,并且必须位于模式的最开始处。

注意2:你也可以这样做:

gsub("(*UTF)\\pP+", "", X1, perl=T)

Because \pP是所有 unicode 标点字符的简写,(*UCP)变得无用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么用于标点符号的 R gsub (或 regexp)不能获取所有标点符号? 的相关文章

  • 需要 RegEx 返回第一段或前 n 个单词

    我正在寻找一个正则表达式来返回段落中的前 n 个单词 或者如果该段落包含少于 n 个单词 则返回完整的段落 例如 假设我最多需要前 7 个单词 p one two p
  • R texreg:如何选择要显示的 gof 统计信息?

    我正在使用 texreg 通过 plm 生成面板回归的输出表 我想抑制所有 gof 统计数据的输出 这不是显示 R2 adj R2 和 N 我只想显示 adj R2 有谁知道一个简单的方法来做到这一点 好吧 这实际上很简单 只需在调用中包含
  • 使用 JavaScript 更改 HTML 内的日期格式

    我在页面上有以下代码 span class release date i class fa fa calendar i 2014 11 16 span This 2014 11 16是日期 由我的 CMS 自动生成 我需要更改这个日期 基本
  • 正则表达式从字符串中提取 IP 和端口

    我正在使用 Perl 尝试从字符串中提取 IP 地址和端口 我尝试使用的正则表达式是 s sip 字符串是 sip 255 255 255 255 8080 transport TCP sip 255 255 255 255 8080 显然
  • 使用 Python 从网站下载所有 pdf 文件

    我遵循了几个在线指南 试图构建一个可以识别并从网站下载所有 pdf 的脚本 从而避免我手动执行此操作 到目前为止 这是我的代码 from urllib import request from bs4 import BeautifulSoup
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • 为每个因素级别添加日期时间序列

    我有一个带有因子列的数据框 s lt data frame id 901 910 s id lt as factor s id 我有一个日期时间序列 library lubridate start lt now as difftime 2
  • 你能挽救我的负面回顾示例来传达数字吗?

    在 高级正则表达式 一章中掌握 Perl http oreilly com catalog 9780596527242 我有一个损坏的示例 我无法找到一个很好的修复方法 这个例子可能为了自己的利益而试图变得太聪明 但也许有人可以帮我解决它
  • 如何在正则表达式中输入“:”(“冒号”)?

    冒号 在正则表达式中具有特殊含义 但我需要按原样使用它 例如 A Za z0 9 我试图逃避它 但这不起作用 A Za z0 9 在大多数正则表达式实现 包括 Java 的 中 无论在字符类内部还是外部 都没有特殊含义 您的问题很可能是由于
  • 匹配括号内任何字符的正则表达式

    尝试创建一个与括号内的任何字符匹配的正则表达式 我的正则表达式模式是这样的 preg match listanswer answer 括号内的所有字符串都是匹配模式 但问题是 当我尝试匹配例如 this word sample data 它
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 如何读取 R 中的每个 .csv 文件并将其导出到单个大文件中

    你好 我有以下格式的数据 101 20130826T155649 3 1 round 0 10552 180 yellow 12002 1 round 1 19502 150 yellow 22452 1 round 2 28957 130
  • 使用 UTF-8 编码的 Powershell 字符串变量

    我检查了许多与此相关的问题 但找不到解决我的问题的东西 基本上 我想将 UTF 8 编码的字符串存储在变量中 然后使用该字符串作为文件名 例如 我正在尝试下载 YouTube 视频 如果我们打印视频标题 则会显示非英文字符 ytd这是you
  • 如何去除 XSL 中字符的重音符号?

    我一直在寻找 但找不到相当于字符 规范化空间 的 XSL 函数 也就是说 我的内容带有重音 UNICODE 字符 这很好 但是从该内容中 我正在创建一个文件名 但我不想要这些重音 那么 是否有一些我忽略的东西 或者没有正确地谷歌搜索来轻松处
  • 正则表达式验证字符串是否包含三个非空白字符

    我使用欧芹 js 来验证输入 并且使用 data parsley pattern 它允许我传递正则表达式 我正在尝试验证该字符串以确保它至少包含三个非空白字符 下面是应该无效或有效的字符串 valid 1 2 b invalid 1 b s
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p

随机推荐

  • 使用 get_posts 显示 WordPress 帖子 - 第一篇帖子不显示日期

    您好 我正在使用 get posts 来获取所有标记为 新闻 的帖子并将其显示在给定页面上 我使用 the date 来获取日期 但奇怪的是第一篇文章没有显示日期 而此后的所有文章都显示日期 此外 我还使用了相同的代码在另一个页面上显示标记
  • 按钮边距的布局问题

    我在 Android 应用程序中组织布局时遇到问题 我正在动态创建按钮并使用此代码将它们添加到我的布局中 LayoutInflater layoutInflater LayoutInflater getBaseContext getSyst
  • 如何在 R 中 gsub 一个空的“”字符串?

    如何替换空字符串 This x c b gsub taco x 产生 taco tacobtaco 代替 taco b 有什么办法可以替换空字符串吗 我会用nchar here x nchar x 0 lt taco EDIT 如果您正在寻
  • 如何获取ServiceState的实例?

    我正在尝试获取一个实例ServiceState in my Activity 但我该怎么做呢 没有静态方法可以获取实例 也没有任何服务上的任何方法返回ServiceState实例 有的是TelephonyManager listen 称呼
  • 如何在 Laravel 模型上设置属性的默认值[重复]

    这个问题在这里已经有答案了 如何在 Laravel 模型上设置属性的默认值 我应该在创建迁移时设置默认值还是应该在模型类中设置它 您还可以在模型中设置默认属性 gt protected attributes status gt self S
  • 部署闪亮应用程序时出错

    我正在尝试将闪亮的应用程序部署到闪亮的服务器中 但出现此错误 Error HTTP 400 POST https api shinyapps io v1 applications Validation Error 在控制台写入后 shiny
  • 在 PHP 中使用大括号构建代码

    是否可以将 PHP 中的代码片段括在括号内 不使用片段作为函数 以下代码的行为是否与没有大括号时的行为相同 或者根据括号内部或外部使用的代码类型可能会出现任何问题 例如 这将是 始终以与此相同的方式行事 Update 正如 My1 的评论中
  • WebClient 的 bodyToMono 对空主体的预期行为

    当 WebClient bodyToMono 遇到空主体时 预期的行为是什么 在我的具体示例中 我们正在检查从调用后返回的状态 如果是错误 则将其转换为我们的自定义错误格式 如果转换为自定义错误格式失败 我们会以自定义格式创建一个新错误来说
  • 代码段的时间复杂度

    从在线笔记中 我读到了以下用于反转字符串的java代码片段 据称该代码片段具有二次时间复杂度 在我看来 i 的 for 循环只是迭代 s 的整个长度 它如何导致二次时间复杂度 public static String reverse Str
  • 将项目上传到 Azure Devops

    我正在尝试将现有的 Visual Studio 项目代码推送到 Azure DevOps 服务器 第一次 所有教程都从在 AzureDevops 上创建一个新项目开始 然后克隆到 Visual Studio 谁能告诉我如何将现有项目推送到服
  • Apache Shiro EhCache初始化异常:同一VM中已存在另一个未命名的CacheManager

    我正在尝试将 EhCache 配置为处理启用 Apache Shiro 的 Web 服务中的授权缓存 目前我收到以下异常 org apache shiro cache CacheException net sf ehcache CacheE
  • Android 应用内结算返回服务器响应代码 2。这是什么意思?

    我正在使用应用内结算 V3 当我尝试购买时 我收到服务器响应代码 2 我已经搜索过 但找不到有关此响应代码含义的文档 如果你看官方的话应用内结算参考 IAB 版本 3 http developer android com google pl
  • 从 Git 子模块存储库导入 React 组件

    我有一个用 React 开发的父存储库 其中有一个子子模块 也是由 React 开发的 项目文件夹结构如下所示 parent git nodemodule src subModules childProject git src js x j
  • 在 ANTLR 3 中,如何在运行时而不是提前生成词法分析器(和解析器)?

    我想在运行时生成 antlr 词法分析器 也就是说 生成语法并从语法生成词法分析器类及其在运行时的支持位 我很高兴将它输入到 java 编译器中 它可以在运行时访问 这是一种快速但肮脏的方法 生成一个combined ANTLR 语法 g给
  • 与单进程场景​​相比,多进程场景中的访问时间意外缩短

    我正在从program1访问共享库 共享数组数据结构 并找到读取该数组的所有元素的访问时间 当只有 Program1 单独执行时 我得到了大约 17000 个时钟周期 现在 当我首先在另一个选项卡中执行program2 具有空的while循
  • 使用 Travis-CI 推送 Git 存储库

    我想每次推送到主服务器时都执行一个脚本 该脚本将创建一些我想要提交和推送的文件 Travis 构建的日志似乎正在添加文件 提交和推送 但没有任何反应 我的 travis yml 是这样的 before install openssl aes
  • 通过交集和并集组合 NSArray

    我有两个 NSArrays A 和 B 它们共享一些共同的元素 例如 A 1 2 3 4 5 B 4 5 6 7 我想创建一个新的 NSArray 其中包含两个 NSArray 之间常见的内容 并与第二个 NSArray 的内容相连接 同时
  • 如何在.net core 2启动时访问IConfigurationRoot?

    我写了一个自定义ConfigurationProvider与实体框架 因为我还想让它在运行时可更新 所以我创建了一个IWritableableOption https stackoverflow com a 42705862 2441442
  • 批处理文件双击可以正常运行,但无法在 Windows 计划任务中运行

    我的 C 驱动器上有一个 archive pst 文件 我在 Outlook 中使用它来备份我的电子邮件 但我的C 不是每晚都备份的 因此 我想将 pst 文件复制到我的网络驱动器 以便持续备份 出于多种原因 我不希望 Outlook 直接
  • 为什么用于标点符号的 R gsub (或 regexp)不能获取所有标点符号?

    我正在清理基于文本的数据文件 但无法弄清楚为什么gsub punct X1 没有给出所有标点符号的匹配 不幸的是 我无法在这里复制这个问题 这让我认为这是一个字符编码问题 有问题的标点符号的外观与标准 ASCII 明显不同 这是我读入文件后