我想要创建一个regex模式,它查找空格并忽略连字符分隔的单词。
基本规则是查找任何后续的空白([\s]+
),并在模式为而不是的情况下查找空白空间:
[\S]+-[\s]+[\S]+
(我不想与空白空间相匹配的模式)
任何其他的空白空间都应该匹配。
匹配的间隔应该仅包括空白空间,而不是其他字符。
例如,:
abc
应该在3-4位置匹配。
abc
定义
应该从abc的末尾匹配到def的开始。
abc-
定义
不应该匹配。
abc -
定义
应该在3-4,5-6匹配。
搜索的字符串是多行的,有许多空格,我想在一个搜索中找到它们。
尝试了许多不同的模式(具有负的前瞻性和回顾性),但是没有一个能够适用于所有的情况。
使用python内置的re
模块。
可以通过两次搜索来完成:
[\s]+
的匹配中搜索(2)组中所有发生的[\S]+-([\s]+)[\S]+
一次搜索就能做到吗?
发布于 2020-03-03 14:39:02
这个怎么样:
(?<![\s\-])[\s](?!\-\s\n)
(?<![\s\-])
不看空间后面的空间和-:(负看behind)(?!\-\s\n)
不看前面的空间-空间和新行:(负向前看)编辑:
试试这个:
(?<![\s])[\s+](?!\-\s\n)(?!\n{2})
在查看了示例数据之后,其中一些数据包含了双新行,因此:
(?<![\s])
不看space(?!\-\s\n)
不看破折号,空格,newline(?!\n{2})
不看双换行符https://stackoverflow.com/questions/60508076
复制相似问题