gpt4 book ai didi

java - 在 Java 中提取不区分大小写的子字符串的正则表达式

转载 作者:行者123 更新时间:2023-11-29 10:08:59 26 4
gpt4 key购买 nike

我正在尝试从段落中提取 GRANT 编号。授权号通常是字母数字,大写字母,中间可以有 -,但它们都不会出现任何空格。

以下是赠款的一些示例:

  • W9124A-18-0001
  • 007-FY2018
  • W81XWH18PRMRPTTDA
  • 07-544

现在我什至不确定一个段落是否有授权,所以目前我依赖于 grant 这个词出现在授权号之前。


示例:

This research was supported by NIH/NHLBI Grant W9124A-18-0001(PI, Michael Brown)

我尝试使用以下正则表达式

(?i)grant [A-Z0-9-]*

但它并不完美,并且在不应该匹配时匹配 Grant w9124A-18-0001(小写 w)。我该如何改进它?

最佳答案

您可以使用表达式:

(?i)(?<=Grant\s)(?-i)[A-Z0-9-]+\b
  • (?i)不区分大小写。
  • (?<=Grant\s) Grant 的正面回顾后跟空格。
  • [A-Z0-9-]+匹配数字、字母字符和破折号 - .
  • (?-i)关闭不区分大小写。
  • \b单词边界。

你可以现场试一下here .

打开区分大小写,而不是禁用不区分大小写,使用:

(?i)(?<=Grant\s)(?c)[A-Z0-9-]+\b

only supported by Tcl .

关于java - 在 Java 中提取不区分大小写的子字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51844078/

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