我需要一个正则表达式从表单的字符串中提取string1,string2和string3:
string1.string2'string3
。分隔符'。'和'''可能不存在于输入中。
问题是string1可能包含句点字符'。'因此,最右边的时间段必须用于提取string1。
可能有帮助的是,string2的长度存在一个条件:它必须由3个字母字符组成,它是国家代码,如USA,JPN。
示例:
input: Hello -> string1=Hello
input: Hello.b -> string1=Hello.b
input: Hello.USA -> string1=Hello, string2=USA
input: Hello.c.JPN -> string1=Hello.c, string2=JPN
input: Hello.d.r.USA'Today -> string1=Hello.d.r, string2=USA, string3=Today
input: Hello.d'Today -> string1=Hello.d, string3=Today
输入字符串可以是std::string
或std::wstring
答案 0 :(得分:1)
std::regex re("([^\\.']+(\\.(?![^']{3}('|$))[^\\.']+)*)(\\.([^']{3}))?('(.+))?");
强制性:
有些人在面对问题时会想到,我知道,我会使用正则表达式。"现在他们有两个问题。 - 杰米·扎温斯基