我想在忽略某些关键词后提取单词
我想忽略提供的或M/S提供的直到行尾
输入文本
汇款通知
本节包括M/S MOBIS INDIA LIMITED提供的详细信息
本节包括MANDO AUTOMOTIVE INDIA LIMITED提供的详细信息
本节包括MAHINDRA和MAHINDRA AUTO SECTOR提供的详细信息
预期输出
摩比斯印度有限公司
MANDO AUTOMOTIVE INDIA LIMITED
马恒达和马恒达汽车行业
我给出了这样的东西
(& lt; =(由)|(由M/s))。*
感谢你的帮助。
如果你只想要一个匹配,你可以使用遍历,并选择匹配M/S
在后面,并断言当开始匹配时,它不会是M/S
(?<=supplied bys+(?:M/Ss+)?)S(?<!s+M(?=/Ss)).+
模式匹配:
(?<=
正向后看supplied bys+
匹配后面跟着1+空格(?:M/Ss+)?
可选匹配M/S
和1+空白字符
)
后面看S
匹配非空白字符(?<!
负向后看s+M(?=/Ss)
匹配1+空格字符,M
并断言S
后跟一个空格字符
)
后面看.+
匹配1+次任意字符
。. NET regex demo
另一种书写方式可以是匹配1+非空白字符,然后在右侧断言空白边界,然后断言直接在左侧不是M/S
(?<=supplied bys+(?:M/Ss+)?)S+(?!S)(?<!M/S).+
查看另一个。net regex演示
另一个选择是使用捕获组:
bsupplied by(?:s+M/S)?s+(.+)
Regex演示