Php 从正则表达式中提取不区分大小写的单词
假设我有一根像Php 从正则表达式中提取不区分大小写的单词,php,regex,Php,Regex,假设我有一根像 $res = "there are many restaurants in the city. Restaurants like xyz,abc. one restaurant like....."; 在上面的例子中,我们可以在3个地方找到餐厅。我需要计数为3 $pattern = '/Restaurant/'; preg_match($pattern, substr($res,10), $matches, PREG_OFFSET_CAPTURE); print_r($matc
$res = "there are many restaurants in the city. Restaurants like xyz,abc. one restaurant like.....";
在上面的例子中,我们可以在3个地方找到餐厅
。我需要计数为3
$pattern = '/Restaurant/';
preg_match($pattern, substr($res,10), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
还有一个问题
这与上述问题有关。i、 例如,我有类似于食品和饮料
的文本。我需要将这个词与食品
或饮料
或海鲜
匹配。。。谁能帮我弄到这个。提前谢谢 修饰符用于不区分大小写的匹配。量词使前面的标记可选匹配,在这种情况下,前面的s
为零或一次
您正在使用preg_match()
想要获得所有匹配项,您需要
请参见您可以使用如下正则表达式:
$pattern = '/restaurants?/i';
我对原始正则表达式做了两个更改:
i
修饰符-这是不区分大小写的标志s?
添加到搜索字符串的末尾。这使得最后一个s
字符是可选的。它与s
的零次或一次发生相匹配- 餐馆
- 餐馆
- 餐馆
- 我建议看一看a——这是一个非常简单的请求
regex中的
|
表示或,?
表示以前的字符或组的0或1,因此以下模式适用于您的规范:
$pattern = '/[Rr]estaurants?/
使用修饰语
i
,即/restaurant[s]{0,1}/i
您的帖子中存在一些矛盾。。。是否希望整个匹配不区分大小写?还是只有第一个字母?还有,单词中的最后一个s
呢?这是可选的吗?如果我有一个字符串,比如$res=“城市里有餐馆,比如xyz,abc”;我怎样才能找到所有与餐厅相匹配的单词。我可以得到匹配图案的计数。\@Gireesh-是。。但是像餐厅这样的字符串呢?这也应该匹配吗?是的,我已经编辑了我的问题。请检查onceAlso是否需要将餐厅与“餐厅”区分开来。请帮我做一件比水果还甜的事。谢谢你,我有一些小问题,与上述问题有关。i、 例如,我有像“食物和饮料”这样的文字。我需要把这个词和食物、饮料或海鲜搭配起来。。。谁能帮我弄到这个。先谢谢你。。新问题。Plz帮助me@Lix请检查它不应该区分大小写。只有第一个字符不敏感。@Pescis-这不是OP特别说明的。虽然你可能是对的。。。让我们清楚地说明只有四个大写字母,而只有第一个字母可以是大写字母。好吧,它适用于所有这些,甚至更多,为什么不呢。@Pescis-不。。。实际的报价是“…像餐馆或餐馆之类的案例…”
。我的理解是,这是一个示例列表,而不是所有可能选项的列表…@Pescis-看起来我是正确的-看到OP的评论回复错误,您的正则表达式将只匹配餐厅中的R
。应该先用你发布链接的工具测试一下…@Havelock我肯定是想让R的人加入一个团队。隐藏直到,最好使用[]
而不是()
;-)这也将匹配RestaurantQ
这也将匹配'Restauran'和'RestaurantTTTTTTTTTTTTTTTT'。甚至不是“餐厅”。我需要匹配餐厅,从restaurantrrr
或aaaaarestarurantrrr
。它在所有情况下都应该与单词匹配,例如,它也会与餐厅匹配<代码>*表示前一个组(或字符)无限到0次。你想要的是其他答案的答案,?
,意思是1到0次。
$pattern = '/[Rr]estaurants?/
As a solution to your problem please try executing following code snippet
$url = "http://www.examplesite.com/";
$curl = new Curl();
$res = $curl->get($url);
$pattern = '/Restaurant(s)*/i';
preg_match($pattern, substr($res,10), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);