需要使用哪个正则表达式从字符串中提取“曼城”。 字符串是:
Aston Villa - Manchester City
我尝试了-(.*)\w|-(.)
,但抓住了-
。
答案 0 :(得分:1)
最简单的是[代码]。 * - (。*)[/ code]您的数据是$ 1或\ 1或其他取决于您的工具的东西。假设数据的格式为xxxxx-xxxxxx
答案 1 :(得分:1)
请注意,-(.*)\w|-(.)
匹配-
,因为这两个选项都以匹配连字符开头。您通常可以通过环视检查是否存在某些内容。
然而,在这种情况下,我建议
-\s*\K[^-]+$
由于您需要仅匹配最后-
之后的子字符串并修剪掉空格,因此您需要类似负无限宽度的后置(?<=-\s*)
。但是,在PCRE中,不支持无限宽度的后视。相反,有一个\K
运算符使引擎省略了当前模式到目前为止抓取的整个匹配。
故障:
-
- 字面连字符\s*
- 零个或多个空白字符\K
- 重置(清空)当前所有匹配缓冲区的运算符[^-]+
- 除-
以外的一个或多个字符... $
- 字符串的结尾。答案 2 :(得分:0)
另一个简单的选项是- (.*)
,请参阅:https://regex101.com/r/fY3oE7/1。使用您所用语言的第一个捕获组来获取破折号后的部分。