-3

これが私の現在の正規表現です: [^\s][\.,\?!:][\w]. などのすべての句読点の後にスペースがあるかどうかを確認する必要があり[.,!:?]ます。しかし、問題があります。チェックインしているファイルのタイプは*.sgmであるため、次のような特定のタグがあります。

<at.cit><at.cit>> </at.cit> <case.cit><lit> </lit></case.cit>

例えば:

<ptext>Text.Text<at.cit>Text</at.cit></ptext>

したがって、一致する"t.T"必要があるのは、ピリオドの後にスペースが必要だからです。しかし、私の正規表現は"t.T"and"t.c""t.c". これらのタグを削除するにはどうすればよいですか?

ご助力いただきありがとうございます。

4

3 に答える 3

1

regex を探していると思います(?<![<\/])\b\w*(\w[.,?!:]\w)\w*\b(?!\>)

于 2012-07-27T14:53:19.103 に答える
0

C# でフォーマットを解析するために作成されたライブラリを使用する必要があるという他のコメンテーターに同意します。何らかの理由で正規表現で絶対にハックする必要がある場合は、次を使用できます。

>(?<Text>([\w]*(?<Hit>\.\S))+[\w]*)<
于 2012-07-27T04:49:56.720 に答える
0
\S[.,?!:]\w(?!(?<=<[^<>]*)(?=[^<>]*>))

現在の位置がタグ内にある場合、後読み -(?<=<[^<>]*)と先読み -(?=[^<>]*>)の両方が true になります。それらを否定的な先読みでラップすると、タグ内での一致が防止されます。

于 2012-07-27T20:22:25.207 に答える