我正在努力学习Regex,这个问题对我来说似乎很难回答我有一个类似的代码
$string = "He is type a document"
$字符串是用户在HTML表单文本区域中输入的,现在我想将其更正为
$correct = "He is typing a document"
代码将扫描整个句子,并在"他是"(或"她是","它是"(后面的单词处停止,然后在单词的最后一个位置添加"ing">
您可以使用以下内容进行匹配:
(?<=(?:he is )|(?:she is )|(?:it is ))('S*)'S
并更换为$1ing
参见DEMO
编辑:要限制单词与ing
匹配,请使用以下命令:
(?<=(?:he is )|(?:she is )|(?:it is ))('S*)'S(?<!ing)'b
编辑:要使替换更有意义,请使用以下操作:
(?<=(?:he is )|(?:she is )|(?:it is ))('S+?)[aeiou]?(?<!ing)'b
这将给出以下内容:
type -> typing
eat -> eating (not eaing)
break -> breaking (not breaing)
write -> writing
请参阅更新的演示
^(?:s?he|it) is 'S+'K
你可以用这个。替换为ing
。请参阅演示。
https://regex101.com/r/vA0yQ3/1
$re = "/^(?:s?he|it) is ''S+''K/mi";
$str = "He is type a document'nshe is type a document'nit is type a document";
$subst = "ing";
$result = preg_replace($re, $subst, $str);