[英]How to use regular expression to get the number of matches in a string?
我最近開始學習正則表達式。 我現在有一個小問題陳述。
我有這樣的模式
var pattern = /^(?:hawaian(?:beach|pizza|hotel))$/gim;
var text = "hawaian hotel is near hawaian beach. In the hawaian hotel they sell hawaian pizza";
我想在本文中真正匹配hawaian酒店,hawaian海灘和hawaian比薩餅。
但該模式僅在hawaianhotel ||等條件下才會返回 hawaianbeach || hawaianpizza。
所以我試着這樣
var text = "hawaianhotel is near hawaianbeach. In the hawaianhotel they sell hawaianpizza";
但這也行不通。
只有這一個正在發揮作用
var matches = pattern.exec('hawaian*');
(?:hawaiian[ ](?:beach|pizza|hotel))
這將與夏威夷比薩相匹配
注意[]如果你想匹配hawaiian2hotel你會做[0-9]或[2]或者如果你想匹配“hawaiian(任意數量的空格)酒店”你會做[] *(零或更多) )或[] +(一個或多個)
另外,這是一個很棒的工具http://iblogbox.com/devtools/regexp/
您的模式使用字符串錨點的開頭和結尾,因此如果模式匹配整個字符串,則只匹配字符串。 刪除^
和$
,你應該沒問題。 請注意,我還添加了一個空格,以便您可以匹配“hawaian hotel”而不是“hawaianhotel”。
var pattern = /(?:hawaian (?:beach|pizza|hotel))/gim;
var pattern = /(?:hawaian[ ](?:beach|pizza|hotel))/gim;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.