簡體   English   中英

如何使用正則表達式來獲取字符串中的匹配數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM