这是我目前的正则表达式:[^\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"
和"t.c"
以及"t.c"
。如何消除这些标签?
感谢您的帮助。
答案 0 :(得分:0)
同意其他评论员的意见,你应该使用一个库来解析C#中的格式。如果由于某种原因你绝对不得不使用正则表达式来破解它,你可以使用以下内容:
>(?<Text>([\w]*(?<Hit>\.\S))+[\w]*)<
答案 1 :(得分:0)
\S[.,?!:]\w(?!(?<=<[^<>]*)(?=[^<>]*>))
如果当前将其放置在标记中,那么lookbehind - (?<=<[^<>]*)
- 和lookahead - (?=[^<>]*>)
- 都将成立。将它们包裹在负向前瞻中会阻止标记内的匹配。