假设我有四个字符串:
s1 = ghgJirafa/com/Activity.java
s2 = /santel/data/jira/JiraSDK.java <- match "jira" in "jira" or "JiraSDK"
s3 = /priv/data/configJira.java <- match "Jira" in "configJira"
s4 = /data/privJiracom/config.java
s5 = /a/data/conJiraig.java
我想写 * regex * 来匹配字符串s2
和s3
中的jira
,而不是s1
和s4
中的jira
,因为在**s1,s4和s5中,'jira'**在单词 * 的中间,我想避免它。我也使用了 * 大小写不敏感 * 来匹配s3
。
这是我的正则表达式:((?i)jira).*\.java
注意,
ghgJirafa <- doesn't match, Jira in the middle of the ghgJirafa word
jira <- match, jira is a whole word
JiraSDK <- match, jira is in the beginning of the word JiraSDK
configJira <- match, Jira is in the end of the word configJira
privJiracom <- doesn't match, Jira is in the middle of privJiracom
conJiraig <- doesn't match, Jira is in the middle of conJiraig
我在StackOverFlow和Google上搜索过,但没有找到这样的答案。我也在不同的不和谐频道上问过,但没有得到任何回应。
1条答案
按热度按时间62lalag41#
我建议
其中我们匹配
\bjira
- * 字边界 *\b
,然后是jira
(jira
在开头),或者jira\b
-jira
,然后是 * 字边界 *(jira
在字的结尾)。您可能需要添加
$
((?i)(\bjira|jira\b).*\.java$
),以确保\.java
位于字符串的最末尾fiddle