You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式,避免匹配单词中间的jira(大小写不敏感)

正则匹配需求:区分单词首尾/完整的"jira"(大小写不敏感)

问题说明

需要编写正则表达式,匹配以下示例中s2和s3里的"jira"变体(大小写不敏感),但排除s1、s4、s5的情况——这三个里的"jira"被夹在单词中间,不符合要求。当前使用的((?i)jira).*\.java无法过滤掉中间的情况。

示例字符串

s1 = ghgJirafa/com/Activity.java 
s2 = /santel/data/jira/JiraSDK.java   <- 匹配"jira"(存在于"jira"或"JiraSDK"中)
s3 = /priv/data/configJira.java       <- 匹配"Jira"(存在于"configJira"中)
s4 = /data/privJiracom/config.java
s5 = /a/data/conJiraig.java

明确匹配规则

ghgJirafa   <- 不匹配,Jira处于单词中间
jira        <- 匹配,jira是完整单词
JiraSDK     <- 匹配,jira处于单词开头
configJira  <- 匹配,Jira处于单词结尾
privJiracom <- 不匹配,Jira处于单词中间
conJiraig   <- 不匹配,Jira处于单词中间

解决方案

核心思路是确保"jira"(大小写不敏感)要么是完整单词,要么处于单词的开头或结尾,通过单词边界+负向断言实现:

正则表达式

如果只匹配符合条件的"jira"本身:

(?i)(?:\bjira\b|(?<![a-z])jira|jira(?![a-z]))

如果需要结合.java后缀的完整路径匹配:

(?i)(?:\bjira\b|(?<![a-z])jira|jira(?![a-z])).*\.java

规则解释

  • (?i):开启大小写不敏感模式,覆盖Jira、JIRA、jira等所有大小写组合。
  • \bjira\b:匹配独立的"jira"单词(前后为单词边界,比如路径中的单独jira目录)。
  • (?<![a-z])jira:匹配"jira"作为单词开头的情况——断言"jira"前没有字母(大小写不敏感模式下,自动适配大写字母的情况)。
  • jira(?![a-z]):匹配"jira"作为单词结尾的情况——断言"jira"后没有字母。

这个正则会精准命中s2和s3的符合条件的"jira",同时排除s1、s4、s5中被夹在单词中间的情况。

内容的提问来源于stack exchange,提问作者umvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:25:16