如何替换多个匹配的正则表达式

2023-11-30

我有一组正则表达式替换需要应用于一组字符串,

例如:

  1. 所有多个空格都带有单个空格("\s{2,}" --> " ")
  2. 全部 。后跟一个 char 。后跟空格,后跟字符(\.([a-zA-Z]-->". $1")

所以我会有这样的东西:

String s="hello     .how are you?";
s=s.replaceAll("\\s{2,}"," ");
s=s.replaceAll("\\.([a-zA-Z])",". $1");
....

它可以工作,但是想象一下我正在尝试替换一个长字符串上的 100 多个这样的表达式。不用说这有多慢。

所以我的问题是是否有一种更有效的方法来使用单个replaceAll(或类似的东西,例如模式/匹配器)来概括这些替换

我已关注Java替换多个不同的...,

但问题是我的正则表达式不是simple Strings.


你有这2个replaceAll calls:

s = s.replaceAll("\\s{2,}"," ");
s = s.replaceAll("\\.([a-zA-Z])",". $1");

您可以将它们组合成一个replaceAll像这样:

s = s.replaceAll("\\s{2,}|(\\.)(?=[a-zA-Z])", "$1 ");

正则表达式演示

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

如何替换多个匹配的正则表达式 的相关文章

随机推荐

  • 如何安全地调用 vsnprintf() ?

    我正在将一些非常古老 gt 10 年 的 C 代码移植到现代 Linux 我在自定义编写的 vsnprintf 包装器中遇到分段错误 显然它的任务是检测重复的输出字符串并实习它们 char strVPrintf const String f
  • Oracle中的查询通过子查询进行选择

    我的 Oracle 数据库中有下表 CREATE TABLE test flight NUMBER 4 date DATE action VARCHAR2 50 CONSTRAINT pk PRIMARY KEY flight date 以
  • 为什么 Glimpse 仍在运行?

    我瞥见了 defaultRuntimePolicy Off 但它仍然显示这样的错误 Unable to define EFProfiledDbProviderServices class of type GlimpseDbProviderS
  • 使用 TensorFlow Benchmark 对 Keras 模型进行基准测试

    我正在尝试使用 TensorFlow 后端对 Keras 模型构建的推理阶段的性能进行基准测试 我当时想的是张量流基准测试工具是正确的方法 我已经成功地在桌面上构建并运行了示例tensorflow inception graph pb一切似
  • 为什么我的 WM_UNICHAR 处理程序从未被调用?

    我有一个 ATL 控件 我希望它能够识别 Unicode 我为 WM UNICHAR 添加了一个消息处理程序 MESSAGE HANDLER WM UNICHAR OnUniChar 但是 由于某种原因 OnUniChar 处理程序永远不会
  • 如何使用 java.util.stream 处理文件块

    为了熟悉流 api 我尝试编写一个非常简单的模式 Problem 拥有一个包含非嵌套文本块的文本文件 所有块均由开始 结束模式标识 例如
  • 我可以同时安装 Powershell 4 和 Powershell 3 吗?

    我的盒子上安装了 Powershell 3 我需要使用 Powershell 4 测试一些脚本 但我想继续运行在 Powershell 3 下测试的一些脚本 并且我不想通过安装 Powershell 4 来破坏某些内容 QUESTION 尽
  • Spark Streaming + json4s-jackson 依赖问题

    我无法在我的 Spark 1 4 1 流应用程序中使用 json4s Jackson 3 2 11 认为是 Spark Core 项目中现有的依赖关系导致了问题 如此处所述 gt 是否可以将 json4s 3 2 11 与 Spark 1
  • Python:如何OCR水平线交叉的字符

    我有一批想要扫描的图像 其中一些有一条水平线穿过必须扫描的字符 如下所示 我编写了一个能够删除水平线的程序 import cv2 import numpy as np img cv2 imread image jpg 0 Applies t
  • 如何约束迭代器的元素类型?

    我正在将一些较旧的 Rust 代码转换为在 1 0 0 上运行 我需要转换一个采用字符迭代器的函数 该函数过去是这样写的 fn f
  • 如何根据Python中数据集的最佳拟合确定微分方程的未知参数?

    我正在尝试使用 python 将不同的微分方程拟合到给定的数据集 因此 我分别使用 scipy 包和solve ivp 函数 只要我对微分方程中包含的参数 b 0 005 有一个粗略的估计 这对我来说就很好 例如 import matplo
  • Android自定义形状

    I know it is possible to make a shape looking something like this 但我不知道如何开始 我可以把它做成一个形状吗 或者我必须做别的事情吗 BR 哦 看看那个 我错了 渐变不是问
  • 多次按键无法解决左侧和空间问题?

    I have a strange problem when I press up left arrows and space simultaneously Why doesn t the space work I tried to test
  • 使用 pvfactors 库时出现“OSError: [WinError 126] 找不到指定的模块”

    我开始按照网站教程使用 Python 中的 pvfactors 工具 它计算光伏阵列表面上的辐照度入射 1 import numpy as np import matplotlib pyplot as plt from datetime i
  • 如何创建 const boost::iterator_range

    评论于为什么 boost find first 对它的输入采用非常量引用 建议 调用者使用 const iterator 模板参数创建一个非常量 iterator range 以 证明 迭代对象具有足够的生命周期 这是什么意思以及我该怎么做
  • 刷新后保持选项处于选中状态

    我有一个按插入选择中的两个参数排序的人员列表 当有人选择一个参数时 如何在刷新或更改 返回页面时保持该参数的选择 我在互联网上的一些帖子上看到了一些问题 但大多数都使用 JQuery 而我不想使用它 代码是这样的
  • Firebase 使用 java(非 android)检索信息

    我一直在尝试使用 java 代码 非 android 获取 firebase 数据库的数据 我使用了与在 android 应用程序中检索相同的方法 但它没有获取数据 Firebase firebase new Firebase https
  • WPF - 通过考虑用户任务栏来最大化无边框窗口

    我正在使用自定义镶边创建一个 WPF 窗口 所以我设置ResizeMode NoResize and WindowStyle None 实现我自己的 chrome 然而 最大化无边框窗口时存在一个问题 它占据了整个屏幕 我发现以下技巧可以解
  • 日期时间和 DbNull.Value

    有谁知道为什么这有效 if item Created DateTime MinValue ListSqlParam Add new SqlParameter TransactionCreated DBNull Value else List
  • 如何替换多个匹配的正则表达式

    我有一组正则表达式替换需要应用于一组字符串 例如 所有多个空格都带有单个空格 s 2 gt 全部 后跟一个 char 后跟空格 后跟字符 a zA Z gt 1 所以我会有这样的东西 String s hello how are you s