我正在尝试匹配在提供的字符串中包含特定字符串的'words'。
这个reg_ex效果很好:
preg_match('/\b(\w*form\w*)\b/', $string, $matches);
因此,例如,如果我的字符串包含:“哪个人已经改革或执行”,则返回重组并执行。
但是,我需要匹配代码中的代码,所以我对'word'的定义是基于将字符串纯粹用空格分割。
例如,我有一个像:
这样的字符串测试MFC-123 / Ben MFC / 7474
我需要匹配'MFC',它应该返回'MFC-123 / Ben'和'MFC / 7474'。
如何修改上述reg_ex以匹配所有字符并将空格用作边界。
由于
答案 0 :(得分:2)
只需使用它就能为您完成:
(MFC\S+)
它表示MFC
如果MFC
介于文本之间或单独使用,则可以在MFC之前和之后放置\S*
。例如
(\S*MFC\S*)
匹配:
MFC-12312
1231-MFC
MFC
答案 1 :(得分:1)
如果你想获得不包含空格并且包含你的MFC匹配的整个文本块,你可以使用以下正则表达式:
\b(\S*MFC\S+)\b
说明:
\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)
1st Capturing group (\S*MFC\S+)
\S* match any non-white space character [^\r\n\t\f ]
Quantifier: Between zero and unlimited times, as many times as possible, giving back as needed.
MFC matches the characters MFC literally (case sensitive)
\S+ match any non-white space character [^\r\n\t\f ]
Quantifier: Between one and unlimited times, as many times as possible, giving back as needed.
\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)
匹配块以粗体显示的示例:
测试 MFC-123 / Ben jbas2 / jda lmasdlmasd; mwrsMFCkmasd j2 \ 13 MFC / 7474
希望这会有所帮助。