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”。