我有一个字符串
foo-bar-bat.bla
我希望仅匹配foo
我的有缺陷模式与foo
和bar
\w+(?=-.*\.bla)
如何弃置bar
?或者甚至更好,我怎么能在foo
之后停止匹配?
答案 0 :(得分:6)
您可以使用以下模式(只要您的字符串始终按您所说的方式格式化):
^\w+(?=-.*\.bla)
^
符号与字符串的开头匹配。因此将采用字符串的第一个匹配。
?=
旨在确保不会捕获群组,但会出现。
答案 1 :(得分:0)
^[^-]+
起始^
表示从字符串的开头开始匹配。字符组[^-]
表示搜索不是短划线的任何内容。 +
表示字符组应该匹配一个或多个字符。
答案 2 :(得分:0)
表达式的“。*”部分与“bar。”匹配。
^\w+(?=-.*)
此表达式显示为“在字符串的开头,至少有一个字符后跟(但未包含在匹配中)DASH后跟任何内容”
^ \w+ (?=-.*)
| | |
| | matches "-bar-bat.bla"
| matches "foo"
start of string