Can someone explain this regexp command?

I have some code:
expr = '<Placemark>.*?</Placemark>';
objectStrings = regexp(txt,expr,'match');
This works exactly as I would like it to. However, I am not fundamentally understanding what Matlab is doing, specifically when I see the .*? I have pored over the documentation, but I am just not understanding. Would someone please be kind enough to explain what is happening?

1 件のコメント

KSSV
KSSV 2017 年 5 月 17 日
What is txt in the input of regexp?

サインインしてコメントする。

回答 (1 件)

Stephen23
Stephen23 2017 年 5 月 17 日
編集済み: Stephen23 2017 年 5 月 17 日

0 投票

It is quite simple:
<Placemark> % match literal string
.* % match any characters, any number of times
? % makes the previous quantifier lazy (ie *)
</Placemark> % match literal string
The MATLAB documentation explains how regular expressions work:
And we find it explains all of those parts of your regular expression:
  • angle brackets are not special characters, therefore the "placemark" parts are interpreted literally.
  • " expr* 0 or more times consecutively."
  • " exprq? Lazy expression: match as few characters as necessary."

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

2017 年 5 月 16 日

編集済み:

2017 年 5 月 17 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by