Java:用于匹配引号之间的单词的正则表达式

2024-02-09

我有以下测试字符串

This is my "te

st" case
with lines for "tes"t"ing" with regex
But as he said "It could be an arbitrary number of words"

我想匹配之间的所有内容"只要与文字绑定。我有以下正则表达式:

\"([^\"]*)\"

这句话非常符合"test"即使它分裂了。有没有办法找到一个tes"t"ing以及整个单词(而不是分成两个单词?尝试使用单词边界\b (\b\"([^\"]*)\"\b)效果不太好,因为它与第一个不匹配"也不是刚才提到的那群人。

我需要它用于 Java 正则表达式。

UPDATE结果我需要有

This is my \q{te

st} case
with lines for \q{tes"t"ing} with regex
But as he said \q{It could be an arbitrary number of words}

您可以使用

.replaceAll("\\B\"\\b(.*?)\\b\"\\B", "\\\\q{$1}")

或者,如果匹配可能跨越多行,请添加(?s)修饰符:

.replaceAll("(?s)\\B\"\\b(.*?)\\b\"\\B", "\\\\q{$1}")

See the 正则表达式演示 https://regex101.com/r/EclEVb/1 .

Details

  • \B"\b - a "它位于字符串的开头或前面有一个非单词字符,后面有一个单词字符
  • (.*?)- 第 1 组:除了换行符之外的任何零个或多个字符,尽可能少
  • \b"\B - a "that 位于字符串末尾或后跟非单词字符,并且前面带有单词字符。

替换是反斜杠 ("\\\\",请注意,在正则表达式替换部分中需要使用双文字反斜杠来插入真正的文字反斜杠,因为反斜杠是替换模式中的特殊字符),q{,组 1 值($1) and a }.

See the Java演示 https://ideone.com/Drvxse:

String s = "This is my \"te\n\nst\" case\nwith lines for \"tes\"t\"ing\" with regex\nBut as he said \"It could be an arbitrary number of words\"";
System.out.println(s.replaceAll("\\B\"\\b(.*?)\\b\"\\B", "\\\\q{$1}"));

Output:

This is my "te

st" case
with lines for \q{tes"t"ing} with regex
But as he said \q{It could be an arbitrary number of words}

NOTE:

如果还需要匹配前面和后面都没有单词字符的两个连续双引号,可以按以下方式修改上面的正则表达式:

 .replaceAll("(?s)\\B(\"\\b(.*?)\\b\"|\"\")\\B", "\\\\q{$2}")

See the 正则表达式演示 https://regex101.com/r/EclEVb/2.

Details

  • (?s)- 嵌入标志选项(等于Pattern.DOTALL)这使得.也匹配换行符
  • \B- 非单词边界,在这里,意味着紧邻左侧,必须有一个非单词字符或字符串开头(因为之后\B,有一个非单词字符,")
  • ( - start of the first capturing group:
    • "\b(.*?)\b" - "后面跟着一个单词字符,然后第 2 组捕获任何零个或多个字符(尽可能少),然后是"前面有一个单词 char (这就是为什么这个模式不能匹配"",因为在第一个之后和第二个之前,必须有一个字母、数字或_)
    • | - or
    • "" - a ""子串
  • )- 第一个捕获组结束
  • \B- 非单词边界,在这里,它意味着紧邻右侧,必须有一个非单词字符或字符串结尾(因为之前\B,有一个非单词字符,").
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:用于匹配引号之间的单词的正则表达式 的相关文章

  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • 比较两个文本文件的最快方法是什么,不将移动的行视为不同

    我有两个文件非常大 每个文件有 50000 行 我需要比较这两个文件并识别更改 然而 问题是如果一条线出现在不同的位置 它不应该显示为不同的 例如 考虑这个文件A txt xxxxx yyyyy zzzzz 文件B txt zzzzz xx
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • hibernate锁等待超时超时;

    我正在使用 Hibernate 尝试模拟对数据库中同一行的 2 个并发更新 编辑 我将 em1 getTransaction commit 移至 em1 flush 之后我没有收到任何 StaleObjectException 两个事务已成
  • 在 Netbeans 8 上配置 JBoss EAP 的问题

    我已经下载了 JBoss EAP 7 并正在 Netbeans 8 上配置它 我已经到达向导 实例属性 其中要求从选择框中选择 域 当我打开选择框时 它是空的 没有什么可以选择的 因此 完成 按钮也处于非活动状态 这使得无法完成配置 我通过
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • 如何使用 XPath 正则表达式匹配 URL

    需要 XPath 方面的帮助 我有这样一个XML
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s

随机推荐

  • 如何获取/proc/[pid]/status信息

    是否有一个定义的结构来获取特定进程的该文件的每个字段而不是解析该文件 The proc pid创建伪文件系统的目的是为了使其他程序能够访问大量内核数据 而无需与二进制结构绑定 尽管 proc pid status旨在 以更易于人类解析的格式
  • 如何在 Lumen 5.5 中将作业分派到特定队列

    在标准作业中 我使用此方法来调度作业 dispatch new PurchaseJob trxId method params 接下来我想调度另一个作业来发送电子邮件 但我想将其拆分到另一个单独的队列 根据我在 Laravel 5 5 文档
  • 命令行工具已安装,是否使用“软件更新”来安装更新?

    我收到您在下面看到的错误 xcode select error command line tools are already installed use Software Update to install updates Name Nam
  • 如何处理 NextJS 导出带有 .html 扩展名的文件,但在 中没有 .html

    所以 我有一个 NextJS 应用程序 我构建链接的方式是通过组件 例如 a My page a 我已经使用此模式构建了整个应用程序 但是 当我进行导出以生成静态站点时 它创建了包含带有 html 扩展名的页面的 out 文件夹 这现在是一
  • getElementById 用于 XML 文档、Mozilla 扩展

    Is document getElementById使用 Mozilla 中的 DOMParser 方法从 XML 字符串解析 DOM 时支持的方法吗 我正在制作一个 Mozilla 扩展 它读取 XML 文件并使用 DOM 解析器将 XM
  • 在 silverlight 应用程序中使用 Windows 集成身份验证和 SqlRoleProvider

    我正在开发 Web 应用程序 该应用程序要求将用户分配到角色并根据其角色授予不同的权限 通过使用 Forms Authentication 和 SqlRoleProvider 可以轻松完成此操作 但是 应用程序将在企业内部网内部使用 并且表
  • AWS lambda java响应不支持嵌套对象?

    我是 Java 新手 所以这可能与 AWS lambda 根本无关 然而 lambda 对输入 输出对象采取了如此自由的态度 我认为它是罪魁祸首 我正在构建我的第一个 lambda 函数 并希望返回一个简单的 JSON 结构 在此示例中进一
  • Python 3 和 b'\x92'.decode('latin1')

    我使用 latin1 编解码器解码 b x92 得到了意想不到的结果 请参阅下面的会议 Python 3 5 2 v3 5 2 4def2a2901a5 Jun 25 2016 22 01 18 MSC v 1900 32 bit Inte
  • 将 ZipEntry 复制到新 ZipFile 的惯用方法是什么?

    我正在编写一个工具来在 DOCX 文件 一种压缩格式 中进行一些小的文本替换 我的方法是复制ZipEntry使用以下命令将原始文件中条目的内容写入修改后的文件中ZipOutputStream 对于大多数 DOCX 文件来说 这很有效 但偶尔
  • 如何使用 Mongoose 和 Node 连接到特定数据库?

    我正在学习如何使用 Mongoose 但有一些我不明白的地方 如何连接到集群中的特定数据库和集合 我有 5 个不同的数据库 每个数据库都有几个不同的集合 当我使用纯 Mongo 客户端时 正如官方文档中显示的那样 我像这样连接 const
  • 检测“变换:translate3d”支持

    有谁知道我会如何检测transform translate3d x y z 有支持吗 我的问题是我想使用translate3d跨支持它的浏览器 因为它倾向于使用硬件加速 因此动画更平滑 然后回退到translate哪里不是 查看这个解决方案
  • VB6:扩展组合框中的项目数量

    有没有办法在 VB6 组合固有控件下拉时扩展其中出现的项目数量 我有大约 10 件物品 我想把它们全部展示出来 Karl Peterson 的经典 VB 网站上的这段代码将自动调整组合框的大小以匹配元素的数量 http vb mvps or
  • 我如何在没有看到合并的情况下进行责备

    如果我有一个历史记录如下的文件 A B C D E 我对 E 进行了责备 然后我想看看修订版 B 和 C 中发生了什么变化 但我并不真正关心 D 因为那是合并 我有办法做到这一点吗 我想我正在寻找某种 no merges 选项来 gitbl
  • 如何从 YouTube 频道 ID 获取用户的 Google+ ID

    我正在运行一项服务 人们可以使用 oauth 2 0 连接他们的 Google 帐户 并且通过 YouTube 权限 我可以管理他们的频道 访问他们的 YouTube 频道 ID 然而 我的问题是你是否可以倒退 即如何根据给定的 YouTu
  • 添加设备,在 genymotion 中出现 http 403 错误

    我有下载Genymotion 2 7 2 最新 形成侧面并安装在我的笔记本电脑中 我已经登录 添加任何设备时 它会给出以下错误 无法创建虚拟设备 服务器返回 HTTP 状态代码 403 None
  • 如何检测 Rails 3 路由中的整数?

    我想做一个littleroutes rb 中的一些额外逻辑可能不属于那里 但对我来说似乎最有意义 我有两条相互冲突的路线 说得原始一些 match videos browseby gt videos browse as gt browse
  • 如何在 Tomcat 中通过 JNDI 配置 JSF 2.0 应用程序的项目阶段

    一直在努力寻找一种配置 Tomcat 7 0 11 的方法 以便我的 Web 应用程序可以使用 Tomcat 配置中的项目阶段设置 到目前为止 没有运气 这个想法是在 Tomcat 服务器 主机 应用程序范围内设置此属性 但不在 web x
  • 周视图标题的全日历格式

    这些天我正在使用全日历 我想更改周视图中日期的格式 我发现很多人都成功使用了columnFormat month ddd week ddd d M day dddd d M 但这对我不起作用 也许原因是我使用西班牙语作为语言 这是我的日历代
  • 在 C# 中使用 twain 获取图像作为图像类

    我可以连接并从我的设备获取图像吐温网 http www codeproject com KB dotnet twaindotnet aspx 但我想将图像处理为Image班级 当我尝试这样的事情时 ArrayList pics tw Tra
  • Java:用于匹配引号之间的单词的正则表达式

    我有以下测试字符串 This is my te st case with lines for tes t ing with regex But as he said It could be an arbitrary number of wo