在 r 和正则表达式中,如何检测排除某些混合条件的字符

2024-02-18

我试图检测字符串中的一些点 (.),并将它们替换为单词旁边的相同点,例如“.”。变为“.AAA”。但有一些条件我想避免替换:

  1. 如果点之前有一个空格和一个字符
  2. 如果点位于两个连字符 (-) 之间

例如,如果输入是:

string <- "first. - second. - third. 4."

我想要的输出是:

"first.AAA - second. - third.AAA 4."

对于第一个条件我可以弄清楚:

str_replace_all("[^ [A-Z19a-z]\\.]([\\.])","\\1AAA")

但在阅读有关前瞻和后视以解决第二个条件并将两者混合在一起时感到困惑。


如果单个字符是指包括换行符在内的任何字符,则可以使用

gsub("(?s)(?:\\s.\\.|-[^-]*-)(*SKIP)(?!)|(\\.)", "\\1AAA", x, perl=TRUE)

See the 正则表达式演示 https://regex101.com/r/7OmM62/1。如果您需要精确地确定“任何字符”条件,请将未转义的点替换为\\s.\\.具有适当的构造。

Details:

  • (?s)- 一个多塔尔s使点匹配任何字符(包括换行符)的标志
  • (?:\s.\.|-[^-]*-) - a non-capturing group matching either
    • \s.\.- 一个空白,任意一个字符, a dot
    • | - or
    • -[^-]*-- 一个连字符,零个或多个除连字符以外的字符,然后是一个连字符
  • (*SKIP)(?!)- 跳过在当前位置失败的匹配,并触发从失败位置搜索下一个匹配
  • | - or
  • (\.)- 第 1 组:一个点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 r 和正则表达式中,如何检测排除某些混合条件的字符 的相关文章

  • 为什么“ab(cd|c)*d”完全匹配“abcdcdd”,但“ab(c|cd)*d”不匹配?尽管他们彼此相似

    我尝试了这个正则表达式 ab cd c d in the regex101 and RegExr网站 与此文本匹配完全地 abcdcdd 现在我们交换一下 cd and c 在正则表达式中 ab c cd d 当我在网站中尝试这个正则表达式
  • 根据 B 列中的一系列值获取 A 列的平均值

    我的数据框有几列 如下所示 df1 lt data frame A c 1 2 4 B c 1 3 1 C c 1 1 3 我有两个条件来获取 A 列的平均值 条件1 我想在B为1时获得A列的平均值 即只对row1和row2进行平均 条件2
  • 匹配字符串在多列上循环

    我有来自一项开放式调查的数据 我有一个注释表和一个代码表 代码表是一组主题或字符串 我正在尝试做的事情 检查代码表中相关列中是否存在开放式注释中的单词 字符串 在评论表中为特定主题添加一个新列 并添加一个二进制 1 或 0 来表示已标记哪些
  • 如何使用键盘命令中断 R 中正在运行的代码?

    如何中断 R 中正在运行的脚本 假设我遇到无限循环或其他问题 并且我想停止脚本运行 有键盘命令可以做到这一点吗 如果有帮助的话 在 Python 中是 Ctrl c 我在R中尝试过 但没有成功 自我回答 几乎是其他人的评论和答案的总结 In
  • 正则表达式匹配组,但组成员除外

    因此 有许多正则表达式可以匹配特定的组 如下所示 Any character except a newline m Any character the m modifier enables multiline mode w A word c
  • htaccess 重写以包含 #!

    呼叫所有 htaccess 专家 我需要你的帮助 我正在尝试强制重写以包含 在网址中 所以基本上我需要 http example com biography http example com biography 将被重写为http exam
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • R中的预测和预测函数之间的区别

    两者之间有什么区别吗predict and forecast R 中的函数 如果是 在哪些具体情况下应该使用它们 Intro predict 适用于多种 R 对象 模型 基础库的一部分 forecast 对于时间序列 预测包的一部分 参见示
  • 使用 regEx 验证属性名称

    我想使用点表示法规则 任何字母或数字以及 and 只要它不以数字开头 显然如果使用括号表示法那么一切都是有效的 我一直在尝试找出正则表达式解决方案 但我对正则表达式的了解并不多 我认为我当前的模式将允许字母 数字 and 但我不知道如何禁止
  • mutate() 尝试在使用美元符号运算符时使用全局变量的值进行提取

    我使用得到了有趣的结果mutate with a 当全局环境中碰巧存在与要提取的元素同名的变量时进行提取 我正在运行 R 3 1 3 和 dplyr 0 4 3 9 这工作正常 library dplyr df lt data frame
  • r - 根据第一个向量重新排序第二个向量

    寻找解决方案来执行以下操作 有两个向量 a lt c 2 1 3 4 7 6 5 9 8 10 b lt c 3 2 1 6 5 4 7 8 9 10 我想创建第三个向量 它给出向量的顺序b需要重新排序 使其顺序与a 在这种情况下我想得到
  • dplyr:取消选择由给出的列

    如何取消选择中给出的列 自写函数的参数 我还需要在另一点选择列 因此只需使用 in 没有解决我的问题 任何解决方案表示赞赏 select 帮助者 操纵者quosures或表达方式 very simple example data test
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 简单的正则表达式:匹配所有内容直到最后一个点

    只想匹配直到但不包括最后一个句点的每个字符 dog jpg gt dog abc123 jpg jpg gt abc123 jpg 我努力了 使用前瞻断言最后一个点字符 现场演示 https regex101 com r rI4pQ1 1
  • 正则表达式。如何从该字符串中获取多个匹配项?

    我正在使用 JavaScript 正则表达式 假设我有以下字符串 XXX 1 XXX XXX 2 XXX XXX 3 XXX YYY 1 YYY YYY 2 YYY YYY 3 YYY 我想运行正则表达式并获得以下模式的结果 Match1
  • 难以理解 R 中双括号和单括号子集之间的区别[重复]

    这个问题在这里已经有答案了 我很难理解双括号子集和单括号子集之间的区别 我在开源编程方面相当陌生 我很难理解 R 中的 help 函数 因为考虑到我目前对 R 的理解 其中的一些信息对我来说太技术性了 我尝试过谷歌搜索差异 虽然它给了我一个
  • 如何绘制对数似然函数图

    我想绘制 pi 和 pi 之间的对数似然函数 对数似然函数 llh lt function teta x sum log 1 cos x teta 2 pi x c 3 91 4 85 2 28 4 06 3 70 4 04 5 46 3
  • 使用 by 参数连接 data.table

    我有两个数据表dx and dy dx lt data table a c 1 1 1 1 2 2 b 3 8 dy lt data table a c 1 1 2 c 7 9 我要参与dy到每一行dx 下面是所需的输出 data tabl
  • 仅当 ggplot 中 y 轴的下限设置为 0 时才会出现图条[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个条形图 当我将限制设置为 0 7 时 就会出现条形 但是 我希望下限为 1 而不是 0 当我将下限设置为 1 时 条形图不会出现 我收到以下错误消息 Removed 8 rows contain
  • 正则表达式不匹配

    我正在尝试以下代码 d byte x01 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x80J x13 x80SQ x80L xe0 x80 x92 x80L x80H xe0 r regexp Must

随机推荐

  • 在 C++11 中生成随机字符串? [复制]

    这个问题在这里已经有答案了 我需要使用 C 11 生成随机字符串的帮助 我不知道如何继续 如果你能帮助我 include
  • 列表视图无限滚动

    我有一个使用自定义适配器的列表视图 现在我希望它显示前五个条目并在向下滚动时加载其他条目 最简单的方法是什么 如果我的列表代码是 public class Second extends Activity static final Strin
  • 查看 Visual Studio 中哪些方法/函数返回特定对象

    我正在 Visual Studio 中制作 C 应用程序 想知道是否有任何方法可以查看返回特定类型的每个方法 例如 我想知道哪些方法返回 AsymmetryAlgorithm 对象 Reflector http www red gate c
  • a[:] = b 和 a = b[:] 之间的区别? (Python)

    我被要求进行编码测试 但不知道答案 有人有主意吗 是切片运算符 当它位于左侧时 它会覆盖列表的内容而不创建新的引用 当它位于右侧时 它会创建具有相同内容的列表的副本
  • 如何使非英语网址在 next.js 中工作?

    如何使非英语 URL 与 next js ssr client 一起使用 欢迎任何想法 重写等 前段时间重写有助于解决这个问题 但在一些更新之后它停止工作 这是我的尝试fix this https github com zeit next
  • 从 listView 中删除标题

    我在尝试从文件中删除标头时遇到一些问题listView 起初我使用addHeaderView 添加它 但是当我更改为另一个布局时我希望它消失但是removeHeaderView 不起作用 我也尝试将可见性设置为 消失 但它并没有消失 我能做
  • RadioGroup 扩展relativelayout?

    我正在尝试为我的应用程序制作一个单选按钮网格 据我所知 使用常规方法这是不可能的RadioGroup因为它扩展了 LinearLayout 并且如果你尝试安排RadioButtons在里面使用RelativeLayoutRadioGroup
  • Prolog家族关系,意外失败

    谁能告诉我为什么我的姨妈关系不工作 每当我尝试调用它时它都会返回 false 我在下面写的叔叔关系似乎运作得很好 我不明白有什么区别 我也尝试过 not mother X Y 最后也但这并没有改变任何东西 FACTS parents dav
  • 使用泛型类型参数作为参数

    我正在尝试创建一个通用函数 它用一个函数调用另一个函数any类型参数 这是我尝试过的 static GetInstance
  • 为什么 CROSS APPLY *不*在此查询中出现无效列错误?

    我正在编写一些代码来查询一些DMV 某些列可能存在于 DMV 中 也可能不存在 具体取决于 SQL 版本 我在网上发现了一个有趣的建议 如何使用跳过特定检查CROSS APPLY 下面的查询是读取 DMV 中可能缺失的列的代码示例 该代码为
  • 在 JavaScript 中交换两个对象

    我有以下代码 MyObject prototype doIt function var a this obj1 var b this obj2 我怎样才能交换的值这个 obj1 and 这个 obj2所以obj1变成obj2 obj2变成o
  • 模板、函数指针和 C++0x

    我的个人实验之一是为了了解 C 0x 的一些功能 我试图将函数指针传递给要执行的模板函数 最终执行应该发生在不同的线程中 但对于所有不同类型的功能 我无法使模板正常工作 include
  • 类型错误:$scope.apply 不是函数

    我试图在检索联系人列表后呈现它rdflib js 它正在正确加载并将其保存在范围内的列表中 但我无法渲染 scope 不更新的正弦 看起来我正在调用 scope apply 在错误的地方 发生错误是因为我将其称为外部角度 但我故意在角度上下
  • 返回 pandas 数据帧的函数

    我不清楚我的问题 所以我正在审查这个问题 我有一个操作通用数据框的函数 它删除并重命名列和记录 def manipulate df df local df local rename columns A grouping column inp
  • 如何为复杂的数学方程创建 Java GUI 程序

    我正在学习 Java AWT 和 Swings 并了解如何创建基本的 GUI 元素 并且我能够使用它来编写一些程序 但是 当我试图了解如何为一些复杂的数学方程创建图表时 我无法找到一些文档或任何示例 例如 在这篇文章中 如何求解三角方程co
  • 获取我的主屏幕小部件的大小

    我只想知道我当前的小部件有多大 我发现了很多设置最小尺寸的问题 但我不想设置它 相反 我想显示适合小部件的信息 如果小部件太小 我需要隐藏一些东西 但我需要知道它的大小 我阅读了一些类的源代码 例如AppWidgetProvider 甚至文
  • Go SDK Apache Beam:单例侧输入 Singleton for int 定义不明确

    使用适用于 Apache Beam 的 Go SDK 我尝试使用侧面输入创建 PCollection 的视图 但我收到这个奇怪的错误 Failed to execute job on ctx making side input 0 sing
  • 查找两个顶点之间的所有最短路径

    给定一个有向图G V E 两个顶点s t和两个权重函数w1 w2 我需要找到最短路径s to t by w2在所有最短路径之间s to t by w1 首先 我怎样才能找到两个顶点之间的所有最短路径s and t Dijkstra 算法帮助
  • Webpack DefinePlugin 未设置/读取 node_env 变量

    我在通过 Webpack 的 DefinePlugin 将 node env var 注入到我的代码中时遇到了真正的问题 并且在阅读了大量帖子后似乎没有任何效果 我有一种感觉 我错过了什么 所以我的生产 webpack 配置是 Config
  • 在 r 和正则表达式中,如何检测排除某些混合条件的字符

    我试图检测字符串中的一些点 并将它们替换为单词旁边的相同点 例如 变为 AAA 但有一些条件我想避免替换 如果点之前有一个空格和一个字符 如果点位于两个连字符 之间 例如 如果输入是 string lt first second third