我有一个正则表达式
请注意,
([-@.\/,':\w]*[\w])*
,它可以匹配文本中的所有单词(包括像 I.B.M 这样的标点符号单词),但是我想排除下划线并且似乎无法弄清楚如何做到这一点... 我尝试添加 ^[_]
(例如 (^[_][-@.\/,':\w]*[\w])*
)但它会将所有单词分解为字母。我希望保留单词匹配,但不想让单词中有下划线,也不想让单词完全由下划线组成。
应该如何正确处理?
P.S.
- 我的应用程序是使用 C# 编写的(如果有任何差异)。
- 我不能使用 A-Za-z0-9,因为我必须匹配不同语言的单词(可能是中文、俄语、日语、德语、英语)。
更新
这里是一个例子:
"I.B.M 应被解析为一个单词 w_o_r_d! 俄语也应该工作:мплекс исторических событий。"
匹配结果应为:
I.B.M.
should
be
parsed
as
one
word
Russian
should
work
too
мплекс
исторических
событий
请注意,
w_o_r_d
不应匹配。
^[_]
应该改为[^_]
。前者将匹配字符串(或多行)开头的_
。 - Mike Park