匹配里面没有连字符的单词
Match words with no hyphen inside
我需要一个正则表达式,允许单词中没有连字符。例如,在字符串"非单词句子"中,它应该只匹配"句子"。我写道:
"b(?!w+[-]w+)w+"
它失败了:
它不仅匹配"句子",还匹配"单词"。
如何使其忽略包含连字符的单词?
好吧,这里有一个用于PCRE(Perl兼容正则表达式系统,这意味着它们中的大多数):
(?<![-])b[a-zA-Z]+b(?![-])
让我为你分解一下:
(?<![-])
:否定地看后面——"下一个匹配的东西,看它前面的东西。如果是连字符,忽略这个匹配"
b[a-zA-Z]+b
:一个词的边界,一个词,一个字的边界。我们的"东西"。
(?![-])
:否定的展望——"匹配的东西,看看它后面的东西。如果是连字符,忽略这个匹配"
它在我最喜欢的在线正则表达式测试程序RegExr中。
这对你有用吗:
(?<=[^s])[a-zA-Z]*(?=[$s])
相关文章:
- 当您在此单词中搜索单词时调整字符数组的大小?
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- C ++程序在字符数组中插入单词
- C++ - 使用结构数据类型将单词中的单个小写字符更改为大写,反之亦然
- 延迟逐个字符打印单词
- 创建单词对齐的字符向量
- 字符串重复替换为连字符 C++
- 在字符数组中存储和恢复一组单词
- 如何用单词排列向量中的每个字符升序?
- 如何使用 STL C++读取文件和保存连字符
- Flex 词法分析器规则,对包含连字符和斜杠的字母数字字符串具有积极的前瞻断言
- 如何计算两个文件中字符单词和行的总数,并将它们相加以得出总数
- 使用getline,c 中的数组以相反的方式将所有字符单词转动
- 用连字符替换字符串中的文本
- 为什么我的程序在从字符串中读取连字符时会崩溃
- 匹配里面没有连字符的单词
- ::boost::spirit:+alnum_p和连字符
- 将连字符作为元素包含在scanf()的扫描集中,如果它是列表中的第一个字符或最后一个字符
- 在Linux下使用连字符或下划线作为文件的分隔符
- 如何在Qt正则表达式中匹配连字符