繁体   English   中英

C#正则表达式:仅字母,后跟可选

[英]C# Regex: only letters followed by an optional

我正在寻找一种使句子中的单词变得更简单的方法。 我对以下表达式表示满意:

\b([a-zA-Z]+?)\b

但是有些情况下,当我不想这么做时,它会算一个单词。 例如,一个单词后接一个以上的句点,例如“ text ..”。 因此,在我的正则表达式中,我希望句点在一个单词的结尾处为零或一次。 插入\\.? 并没有解决这个问题,在此方面也没有产生任何成果。

希望有人能帮忙!

单个点表示任何字符。 您必须将其转义为

\.?

也许您想要一个这样的表达式:

\w+\.?

要么

\p{L}+\.?

您需要添加\\.? (而不是.? ),因为句点在正则表达式中具有特殊含义。

为了避免与示例“ test ..”相匹配,您不仅要求将\\.? 用于检查单词后的第一个字符是否为点,还可以进一步查看一个字符以检查单词后的第二个字符。

我确实得到了这样的\\w{2,}\\.?[^.]

您还应该考虑一个句子并不总是以.结尾. 而且! 还是? 都一样

我通常使用rubulator.com快速测试正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM