Regex 正则表达式忽略字符串部分的单词
我有一段文字:Regex 正则表达式忽略字符串部分的单词,regex,python-3.x,Regex,Python 3.x,我有一段文字: '1 2 3 ab AB úá awindow BCwindow' 目前,为了只获取单词,我使用这个正则表达式:[a-zA-Zá-ú]+,结果如下: ['ab', 'awindow', 'bcwindow', 'úá'] 我想删除“窗口”字符串中的mathes单词以获得以下内容: ['ab','a','bc','úá'] 谢谢。如果单词窗口总是出现在匹配单词的末尾,您可以执行以下操作: (?<!\S)[a-zA-Zá-ú]+?(?:(?!\S)|(?=window))
'1 2 3 ab AB úá awindow BCwindow'
目前,为了只获取单词,我使用这个正则表达式:[a-zA-Zá-ú]+
,结果如下:
['ab', 'awindow', 'bcwindow', 'úá']
我想删除“窗口”字符串中的mathes单词以获得以下内容:
['ab','a','bc','úá']
谢谢。如果单词窗口总是出现在匹配单词的末尾,您可以执行以下操作:
(?<!\S)[a-zA-Zá-ú]+?(?:(?!\S)|(?=window))
细分:
匹配单词边界位置(单词的起始位置)\b
至少对类中的字符进行一次不加密的匹配[a-zA-Zá-ú]+?
非捕获组的开始(?:
匹配单词边界(这里我们指的是单词的结尾)\b
或|
正向前瞻,断言以下字符是(?=window)
window
非捕获组结束)
每当第二个单词边界匹配或肯定的前瞻性断言时,引擎就会满足要求,并且该点之前的所有内容都会作为匹配项返回。这里的规则是什么?迭代数组并替换窗口内容,或者尝试窗口是否应该在所有字母之后出现。另外,尝试@revo Answers可以完美地工作!谢谢。你能一步一步地解释一下吗?谢谢
\b[a-zA-Zá-ú]+?(?:\b|(?=window))