我正在寻找一种从句子中获取单词的方法。我对以下表达式非常了解:
\b([a-zA-Z]+?)\b
但是有些事情会在我不想要的时候计算出一个单词。例如,一个单词后跟多个句点,如“text ..”。因此,在我的正则表达式中,我希望将句点设置为零或一次的结尾。插入\.?
并不能解决问题,而且这方面的变化也没有产生任何结果。
希望有人可以提供帮助!
答案 0 :(得分:1)
单个点表示任何字符。您必须将其作为
进行转义\.?
也许你想要一个这样的表达式:
\w+\.?
或
\p{L}+\.?
答案 1 :(得分:0)
您需要添加\.?
(而不是.?
),因为该句号在正则表达式中具有特殊含义。
答案 2 :(得分:0)
为了避免匹配您的示例“test ..”,您要求的不仅需要将\.?
用于检查单词之后的第一个字符是否为点,而且还要查看一个字符以检查这个词之后的第二个字符。
我最终得到了类似的东西
\w{2,}\.?[^.]
您还应该考虑一个句子并不总是以.
结尾,而是!
或?
等。
我通常使用rubulator.com来快速测试正则表达式