C++ 使用数字作为标记的正则表达式拆分字

C++ 使用数字作为标记的正则表达式拆分字,c++,regex,C++,Regex,我想解析一个文本,只保留带有字母字符或“字符的单词(ASCII格式为39)。例如: I know that Dave's car is 'broken'. 应该被解析为 I/know/that/Dave's/car/is/broken (其中/只是表示它是另一个单词) 到目前为止,我已经: regex e ("\\b[A-Za-z']+\\b"); 但这并没有将abc2efg分割成abc/efg,这将是我想要得到的最终结果 谢谢您的回答。\\b仅在单词边界上匹配 要匹配包含,但不匹配以开头

我想解析一个文本,只保留带有字母字符或
字符的单词(ASCII格式为39)。例如:

I know that Dave's car is 'broken'.
应该被解析为

I/know/that/Dave's/car/is/broken
(其中
/
只是表示它是另一个单词)

到目前为止,我已经:

regex e ("\\b[A-Za-z']+\\b");
但这并没有将
abc2efg
分割成
abc/efg
,这将是我想要得到的最终结果


谢谢您的回答。

\\b
仅在单词边界上匹配

要匹配包含
但不匹配以
开头或结尾的单词,这可能适用于您。我没有用C++的正则表达式引擎测试它

regex e ("([A-Za-z]+)|([A-Za-z]+[A-Za-z']*[A-Za-z]+)");

你能做到

#1

(\d+)
然后替换为“,”

结果

美国广播公司

#2

([a-zA-Z]+)
结果:

abc
def

\b
意味着什么?它与单词边界匹配。我不知道这个实现是否是最好的,但现在它可以正确解析我给出的示例,但不能用数字分隔两个单词或,
正则表达式e((?:^[A-Za-z])([A-Za-z]+(?:'[A-Za-z]+)(?![A-Za-z])
并抓取Group1内容查看您的答案,其中包含单词的开头/结尾。例如,如果文本中有“'Hello'”,则会使用“Hello”。