从字符串中提取单词的正则表达式
我想从 java 字符串中提取所有单词。
单词可以用任何欧洲语言书写,并且不包含空格,仅包含字母符号。
但它可以包含连字符。
I want to extract all words from a java String.
word can be written in any european language, and does not contain spaces, only alpha symbols.
it can contain hyphens though.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您不依赖正则表达式,还可以查看 BreakIterator,特别是 getWordInstance() 方法:
If you aren't tied to regular expressions, also have a look at BreakIterator, in particular the getWordInstance() method:
您可以使用
(? 的变体,即任何最大的非空白字符序列。
\S
以查找更具体的内容[A-Za-z-]
等)这是一个简单的例子来说明这个想法,使用
[az-]
作为字母字符类:这会打印:
参考文献
但是字母表应该是什么?
您可能必须使用 Unicode 字符类等(留在原地,现在研究主题)
You can use a variation of
(?<!\S)\S+(?!\S)
, i.e. any maximal sequence of non-whitespace characters.\S
to look for something more specific[A-Za-z-]
, etc)Here's a simple example to illustrate the idea, using
[a-z-]
as the alphabet character class:This prints:
References
But what should the alphabet be?
You may have to use the Unicode character classes etc (stay put, researching on topic right now)
这将匹配一个单词:
This will match a single word: