gpt4 book ai didi

java - 正则表达式替换操作(如果存在于java中)

转载 作者:行者123 更新时间:2023-12-02 05:54:48 24 4
gpt4 key购买 nike

是:

String: "DARTH WEDR DR MRS"
Regex: "(.*?DR)\\s(-|MRS?|MI?SS?)?$"

此正则表达式操作无法删除 MRS,只留下 DR。 enter image description here

应该:

String: "DARTH WEDR DR MRS".replaceAll("(.*?DR)\\s(-|MRS?|MI?SS?)?$", "");
Output: "DARTH WEDR DR"

缩写总是在最后,但有些名称可以在名称中包含缩写,所以应该是 <space> DR <space>在末尾阅读以避免名称缩写的问题。

示例:

BRUCE WAYNE MR
GAL GADOT DR MS
GOD ZILADR DR MRS
<小时/>

我没有主意了。有什么想法吗?

最佳答案

我建议使用

.replaceAll("(.*?\\sDR)(?:\\s+(?:-|MRS?|MI?SS?))?$", "$1");
^^^ ^^^ ^ ^^ ^^

请参阅regex demo

注释:

  • 由于需要匹配用空格括起来的DR,因此在DR之前添加\s
  • 整个尾随部分是可选的,因此空格也必须是可选的。 (?:\s+(?:-|MRS?|MI?SS?))? 匹配 1 个或 0 次出现的 1 个以上空格,后跟 - MRMRSMSMSSMISMISS
  • 要保留起始文本,请替换为组 1 的反向引用。

关于java - 正则表达式替换操作(如果存在于java中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59048260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com