我试图匹配在提供的字符串中包含特定字符串的“word”。
这个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以匹配所有字符并使用空间作为边界。
谢谢
发布于 2014-03-28 16:59:33
简单地使用它可以为您提供以下功能:
(MFC\S+)它意味着在MFC之后的任何非空格字符
如果MFC在文本之间或单独出现,那么您可以将\S*放在MFC` `之前和之后。例如
(\S*MFC\S*)这是匹配的:
MFC-12312
1231-MFC
MFC发布于 2014-03-28 17:14:19
如果要获取不包含空格并包含MFC作为匹配的整个文本块,可以使用以下regex:
\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)匹配块以粗体表示的示例:
测试lmasdlmasd;mwrsMFCkmasd mfc-123/Benjda 2/jda j2\13 MFC/7474
希望这能有所帮助。
https://stackoverflow.com/questions/22718892
复制相似问题