使用类似这样的字符串:
Line 1: Test TableA
Line 2: TableA AWord
Line 3: TableA AWord
Line 4: This.TableA
Line 5: This. TableA Aword
我想匹配满足这些条件的位置:
- 找到单词 TableA
- 找到TableA的同一行上的任何地方都没有点
- TableA单词前面可以有任意数量的空格或其他字符
- TableA一词后可能会有字符
因此在上述情况下:
- 第1,2和3行应全部匹配-但仅在单词TableA上
- 第4行和第5行不匹配
尽管要使它正常工作,我确实遇到了麻烦。
-
这与除#3以外的所有行都匹配-并且从行首到表A的末尾匹配
^([^\.].*)(?:TableA)
-
这匹配行1,2,3和5,并且对于1和2,它从行的开始到TableA的末尾匹配
(?!\.).(\s)*(TableA)(?=\s|$)
-
这匹配1,3(我最接近正确答案的那个),但是从行的开始到TableA的末尾匹配
^(?!.*\.).*(TableA)
此线程:Regex: Match word not containing 包含的解决方案与我设法输出的解决方案非常相似,但同样,它匹配找到的特定单词前面的每个字符。
这是在PowerShell中-因此,我相信PCRE实际上是它所使用的(?)