java - 正则表达式匹配双空格之后、逗号之前

标签 java regex

我正在尝试匹配下面字符串的粗体部分,它代表一个城市。

1795 新测试博士测试测试怀尔德伍德,密歇根州 48769-1100

Dr 和 Test 之间有两个空格,起始部分应位于两个空格之后,并在逗号之前结束。

我觉得我已经非常接近正确,但不能 100% 正确,因为它在测试之前包含了空格字符。

(?=\s{2})[\w+\s]*[^,]

以上是我到目前为止所拥有的,而且许多其他替代方案也不起作用,或者它们仍然包含我在开始时不想要的空白字符。

我觉得我错过了一些简单的东西,但即使在查看了很多地方之后,我似乎也找不到与此模式匹配的正则表达式。

我也知道这可以通过分割和子字符串轻松完成,但不幸的是,要求是正则表达式,因为这是用于数据库驱动的自动化应用程序,并且格式应该能够动态更改,而不需要部署,因为代码更改。

最佳答案

您需要向后查看空格而不是向前查看,因为您希望比赛在空格之后立即开始。从那时起,您可以简单地对不是逗号的任何内容进行贪婪匹配:

(?<=\s{2})[^,]*

* 是贪婪的,会消耗尽可能多的字符,在逗号之前立即结束匹配。

关于java - 正则表达式匹配双空格之后、逗号之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29187839/

相关文章:

java - 通过使用 BouncyCaSTLe 进行 CSR 签名生成的证书被认为是不受信任的

PHP:如何将 in_array 与正则表达式字符串数组一起使用?

java - 是什么导致我的 Java `.matches()` 正则表达式返回 False?

java - SubscribeOn 仅使用池中的 1 个线程

java - 从 Oracle 数据库中检索日期列时如何忽略 java 所做的 DST 调整?

java - 是否可以在谷歌应用引擎上部署 cakephp 应用程序?

java - 如何根据(使用)选定的随机数找到选择限制?

PHP preg_replace问题

javascript - jQuery - 替换 MyBB 消息但不是其中的一部分

python-3.x - 使用正则表达式提取字符串之间的文本