类似于在PHP中使用Regex

I've a word, $my_word="MYWORD"; Now, I want to make a regular expression of that, which detects the following cases

--> MY WORD
--> MYWORDS
--> MYWORDSISMINE
--> WORD
--> WORDS

Now, I want to make a regular expression in php using preg_match() which detects the following occurrences.

My Try:

$mycase = str_replace(' ', '|', $my_word); // where $str would be MYWORD
$mycase = (preg_match("/\b(".$mycase.")\b/", $someFuzzyWord)); // $someFuzzyWord is the user entered string which needs to be filter

I had putted the | so that it can detect every word and also tried .* after starting and trailing of a word so that it can be detect a substring.

dongliming2416
dongliming2416 如果你有一串空格分隔的搜索词,是什么让你认为词边界将在正则表达式中起作用?另一个问题是如果您将它们用作正则表达式文字,则应该转义字符串元字符。
大约 5 年之前 回复
doumei2023
doumei2023 您如何期望正则表达式知道您的单词中的哪些字符可以消除哪些字符应该存在?我的意思是使用正则表达式,你将无法指定如果MY不在那里,只有WORD是好的,但“或”已经不是一个可接受的解决方案,但它仍然是字符串“word”的一部分。如果我们忘记了regexp试图找出哪些部分可能被省略的想法,那么它就可以解决了。
大约 5 年之前 回复
douwayuan3063
douwayuan3063 情况就是如果有空间的话。
大约 5 年之前 回复
duanhuan7750
duanhuan7750 是的,@zolo任何与这种情况相符的词。但是我的循环中的单词可以填充它们以制作正则表达式。
大约 5 年之前 回复
duanquan1207
duanquan1207 如果我理解得很好,你不仅需要解决这个案例的解决方案,而且还需要你将来会使用的任何一个词。如果这是真的,那么单独的regexp将无法处理它。
大约 5 年之前 回复
duancong2160
duancong2160 可以吗(MY)??话?(ISMINE)?帮你?
大约 5 年之前 回复
dongxue9997
dongxue9997 my_word中没有空格,那么为什么用管道替换空间呢?
大约 5 年之前 回复

1个回答



我认为这可以帮到你:</ p>

  $ mycase = str_replace(“MY  “,”“,$ my_word); 
$ regex =”(MY)?“ + $ mycase +“S?(ISMINE)?”;
$ mycase =(preg_match(“/ \ b(”。$ mycase。“)\ b / i”,$ someFuzzyWord));
</ code> </ pre>
</ div>

展开原文

原文

I think this can help you:

$mycase = str_replace("MY", "", $my_word);
$regex = "(MY)? ?" + $mycase + "S?(ISMINE)?";
$mycase = (preg_match("/\b(".$mycase.")\b/i", $someFuzzyWord));

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问