你没有说你用的什么语言。
假设你用 Python
(?:\s*(?::|,|and)\s*(?P<target>\w+))
这条正则产生了名为 target 的 named group
如果你用 Ruby
(?:\s*(?::|,|and)\s*(?<target>\w+))
如果你用 php ,那么上面两条都能用
如果你用 javascript ,因为 js 不支持 named capturing group ,所以只能用 numbered capturing group
(?:\s*(?::|,|and)\s*(\w+))
原理:每组以 : 或者 , 或者 and 开头,前后可能有空格(\s*),然后接一个或者多个英文字符(\w+), 这里的\w+就是我们要找的内容。
如果你的需求确定只会出现 nw, sw, se, w, s, e 这几种组合,那么也可以缩小匹配范围。
正则测试网站:
https://regex101.com/#pcre这是 Python, Javascript 和 php 的
http://rubular.com/这是 Ruby 的
你可以自己测试修改正则。
其他语言可以自己修改,大同小异。