我正在尝试创建一个regex,它允许我找到一个字符串的实例,其中我有一个无空格的/
例如:
some characters/morecharacters
我想出了下面的表达式,它允许我在/
之前查找单词字符或右括号,然后查找单词字符或左括号字符。在
这在大多数情况下都很有用,但是当我在引号中加上/
时,我就不方便了。万一我被忽视了。我看到了一些不同的帖子here和{a2}。然而,在我的情况下,我不能让他们工作。在
我想要的是下面确定的前三种情况匹配,最后一种类型被忽略,允许我提取第1项和第3项。在
some text/more text
(formula)/dividethis
divideme/(byme)
"dont match/me"
这将只匹配不在引号内的单词。在
输出:
^{pr2}$Demo on Regex101
虽然不漂亮,但这会让你随心所欲:
Demo on Regex101
让我们把它分解一下:
[^"\n]+
将匹配一个或多个字符,只要它们不是引号或换行符(\n
)。在\/
将匹配文本斜杠字符。在(?:\)|\b)(?!")
将匹配右括号或单词边界,只要它后面没有引号。它通过使用negative lookahead来实现这一点。请注意,(?:\)|\b)
只能按此顺序100%正确工作-如果您反转它们,它将删除括号中的匹配项,因为它在到达括号之前遇到了一个单词边界。在相关问题 更多 >
编程相关推荐