我无法弄清楚的正则表达式问题(负向后查找)
我如何使用正则表达式做到这一点?
我想匹配这个字符串:-myString
但我不想匹配这个字符串中的-myString
:--myString
myString是当然任何东西。
有可能吗?
编辑:
这是自从我发布问题以来到目前为止我得到的更多信息:
string to match:
some random stuff here -string1, --string2, other stuff here
regex:
(-)([\w])*
这个正则表达式返回我 3 个匹配项: -string1
、-
和 -string2
理想情况下,我希望它只返回 -string1
匹配项
how do i do this with regex?
i want to match this string: -myString
but i don't want to match the -myString
in this string: --myString
myString is of course anything.
is it even possible?
EDIT:
here's a little more info with what i got so far since i've posted a question:
string to match:
some random stuff here -string1, --string2, other stuff here
regex:
(-)([\w])*
This regex returns me 3 matches:-string1
, -
and -string2
ideally i'd like it to return me only the -string1
match
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
假设您的正则表达式引擎支持(负)lookbehind:
例如,Perl 支持,Javascript 不支持。
Assuming your regex engine supports (negative) lookbehind:
Perl does, Javascript doesn't, for example.
您想要匹配以单个破折号开头的字符串,而不是具有多个破折号的字符串?
解释:
You want to match a string that starts with a single dash, but not one that has multiple dashes?
Explanation:
测试:
Testing:
根据上次编辑,我想以下表达式会更好
based on the last edit, I guess the following expression would work better
在不使用任何后视的情况下,使用:
打破:
Without using any look-behinds, use:
Broken out: