我正在尝试创建一个正则表达式,允许我找到一个我没有空格的字符串实例,/
例如:
some characters/morecharacters
Run Code Online (Sandbox Code Playgroud)
我已经提出了下面的表达式,它允许我在我/和单词字符之前找到单词字符或右括号,或者之后打开括号字符.
(\w|\))/(\(|\w)
Run Code Online (Sandbox Code Playgroud)
这适用于大多数情况,但是当我/附上引号时,我会松开.在这种情况下,我希望它被忽略.我在这里和这里看过几个不同的帖子.但是,我不能让他们在我的情况下工作.
我想要的是下面确定的前三个案例匹配和最后一个被忽略的演员,允许我提取项目1和项目3.
some text/more text
(formula)/dividethis
divideme/(byme)
"dont match/me"
Run Code Online (Sandbox Code Playgroud)
它不漂亮,但这会做你想要的:
(?<!")(?:\(|\b)[^"\n]+\/[^"\n]+(?:\)|\b)(?!")
Run Code Online (Sandbox Code Playgroud)
让我们分解一下:
(?<!")(?:\(|\b)将匹配开括号或单词边界,只要它没有前面的引号.它通过采用负面的观察来做到这一点.[^"\n]+将匹配一个或多个字符,只要它们既不是引号也不是换行符(\n).\/ 将匹配文字斜杠字符.(?:\)|\b)(?!")只要没有引号,就会匹配右括号或单词边界.它通过采用负前瞻来做到这一点.请注意,(?:\)|\b)只会按此顺序100%正确工作 - 如果你反转它们,它会删除括号上的匹配,因为它在到达括号之前遇到单词边界.| 归档时间: |
|
| 查看次数: |
910 次 |
| 最近记录: |