2011-01-04 17 views
0

私は文の中から単語を取り出す方法を探しています。私は次の式でかなり遠いです:C#Regex:文字の後にオプションを付けてください

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

しかし、私はそれが欲しいときに単語を数えるいくつかの出現があります。たとえば、「テキスト..」のような1つ以上のピリオドが続く単語。だから、私の正規表現では、単語の末尾にゼロまたは1つの時間を置くことができます。 \.?を挿入しても、このトリックは行われませんでしたが、これを変更しても効果がありませんでした。

誰かが助けてくれることを願っています!

+0

@bdukesをrubulator.comを使用

、なぜあなたはバックスラッシュを追加しましたか? – tster

+0

bdukesが正しかった、それは私がそれを置く方法でした! – TheDude

+0

+別の奇妙な問題があります。 FFでは、私はコメントを追加するには、私はすべてをクリックすることができますが、何も起こっていない... – TheDude

答えて

1

単一のドットは任意の文字を意味します。たぶん、あなたはこのような表現たい

\.? 

としてあなたはそれをエスケープする必要があります。

\w+\.? 

または

\p{L}+\.? 
0

ピリオドが正規表現で特別な意味を持つため、\.?.?ではなく)を追加する必要があります。

0

はあなたの例で試合を避けるために、「テストを..」あなたが求めます\.?を単語の後の最初の文字を点としてチェックするだけでなく、単語の後の2番目の文字をさらに調べるために1文字をさらに探す必要があります。

私はこの \w{2,}\.?[^.]

のようなもので終わるんでしたまた、文は常に.で終わるだけでなく、!または?と似ていないことを考慮すべきです。あなたが編集したとき、私は通常、簡単なテストに正規表現

関連する問題