If you have a string like:
"hello my name is joe bloggs! I like stuff"
How do you match just "hello my name is joe bloggs"
?开发者_运维百科 I started off with:
(.+)(!)(.+)
and at point !
, I want it to stop.
Please can you answer with the .
function?
Thanks
You need a question mark:
(.+?)(!)(.+)
([^!]*)(!)(.*)
There could be a little difference in that .
"normally" doesn't "capture" new line, while [^!]
will, but unless you'll have newlines in your text, you won't see any difference.
There is not a problem with the .
; you just have three capture groups: the first (.+)
, the (!)
, and the second (.+)
. If you just want to match a line that ends with a !
, consider
(.+)!
but if you want to clearly identify each part of the line,
^(.+)!.+$
Again, the problem is not with the .
, but you should have just one group surrounded by parenthesis if you want one capture.
精彩评论