我正在尝试将正则表达式与以下短语匹配:
RENT3 - LOCALIZA
HGRE11 - FII HG REAL
HGLG11 - FII CSHG LOG
HGBS11 - FII CSHGSHOP
KNRI11 - FII KINEA
NTCO3 - GRUPO NATURAON NM
ITUB3 - ITAUUNIBANCO
ITSA4 - ITAUSA
ITSA4 - ITAUSA
我尝试使用\s-\s(\w+)\w*$
,目前您可以在此示例中查看一些行:
https://regex101.com/r/I4JkVP/2
如何获取所有行?
我对这个正则表达式的反对是删除第一个单词之后的所有单词,例如:
RENT3 - LOCALIZA
之后仅保留一个单词:“ RENT3”。
答案 0 :(得分:0)
相反,只需将第一个单词分组即可:
(?<identifier>\w+).*
然后对于每个线路匹配都匹配,如果匹配,则:
String identifier = matcher.group(“identifier”)
更容易阅读。
答案 1 :(得分:0)
尝试这种模式(?=\s-\s).*
答案 2 :(得分:0)
匹配所有首字母:
^\w+(?=\s+-)
说明
^
字符串的开头\w+
匹配1个以上的字符字符(?=\s+-)
正向前进,断言右边是1+个空格字符和-
对于示例数据,您也可以省略^
要删除第一个单词后跟连字符的所有内容,可以使用捕获组并将其用于替换。
^(\w+)\s*-.*
答案 3 :(得分:0)
我用替换了最后一个 \ w 。可以正常工作。