java - 需要 java 正则表达式来匹配具有多个空格的子字符串,只有一个标点符号

标签 java regex

我想确保我匹配的子字符串只有一种可能的标点符号和尽可能多的空格。这是一个更长的 REGEX 内部,目前有以下内容:

[\p{P},\s]

但这将匹配所有标点符号和空格,因此它接受:

,,,, ,,, 之前的字符串。 ....之后的字符串 当我希望它匹配的是之前字符串和之后字符串之间的任意数量的空格时,只允许使用一个标点符号 - 请注意,标点符号可以出现在字符串的开头、结尾或作为之前或之后有很多空白。

最佳答案

what I want it to match is any amount of whitespace in between the string before and the string after, with only one item of punctuation allowed

试试这个:

\s*\p{P}\s*

解释:

\s*   Match any amount of whitespace
\p{P} Match a single punctuation character
\s*   Match any amount of whitespace

请注意,在 Java 字符串文字中,反斜杠需要转义。

关于java - 需要 java 正则表达式来匹配具有多个空格的子字符串,只有一个标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757529/

相关文章:

Python正则表达式捕获各种url模式组

mysql - 如何向 MySQL 数据字段添加正则表达式?

java - Intellij spring boot 扩展 gradle 构建文件中的 processResources 以替换属性

java - 使用 Java 在私有(private)模式下运行 Selenium EdgeDriver(Chromium)

java - 类似于 FakeWeb for Java 的功能

java - 如何使我的实现 Struts PlugIn init 方法的类在异常时转发到错误页面?

javascript - 如何让我的正则表达式只返回完全匹配

java - 无法使用 java 上传共享点文件夹上的文档

regex - 正则表达式匹配字符重复三遍

regex - 如何在这个给定的场景中应用惰性量词?