在分号分隔的字符串中单独查找特定单词

时间:2018-03-15 21:30:50

标签: regex

我正在尝试找到一个只能从语言字符串中提取特定单词的正则表达式。

字符串由分号;分隔,并且只能包含(在此示例中)"Norwegian""Norwegian""Bokmål, Norwegian"不是"Norwegian"而是仅Norwegian; Bokmål, Norwegian; Norwegian Bokmål; Norwegian

在这个示例中,我希望在字符串的开头和结尾有2个匹配,但它可能在任何地方:

mylist=['one','two','three','four']
mystring='thr'

2 个答案:

答案 0 :(得分:0)

这个正则表达式:

(; Norwegian;)|(; Norwegian$)|(^Norwegian;)

...会在字符串的中间,结尾或开头匹配"Norwegian" 单独

See this regex on Regex101

答案 1 :(得分:-1)

您可以使用分号边界。

(?<![^;])\s*Norwegian\s*(?![^;])

https://regex101.com/r/y13LBb/1

格式化

 (?<! [^;] )
 \s* Norwegian \s* 
 (?! [^;] )

无后悔更新

(?:^|;)\s*(Norwegian)\s*(?![^;])

https://regex101.com/r/E6cKO9/1

 (?: ^ | ; )
 \s* 
 ( Norwegian )                 # (1)
 \s* 
 (?! [^;] )