Java 使用正则表达式查找字符串中不包含specefic字母的所有单词

Java 使用正则表达式查找字符串中不包含specefic字母的所有单词,java,regex,Java,Regex,如何使用正则表达式查找字符串中不包含字母i的所有单词。例如,字符串是 This is my first regex example 输出应该是 my regex example 编辑:我试过blow正则表达式,但不起作用 "\\b\\w*[^i]\\w*\\b" 试试这个正则表达式: \b[^i\s]+\b 说明: \b-返回单词和非单词字符之间的0长度匹配 [^i\s]+-匹配既不是i也不是空白字符的任何字符的1+次出现次数 \b-单词边界 试试这个正则表达式: \b[^i\s]

如何使用正则表达式查找字符串中不包含字母
i
的所有单词。例如,字符串是

This is my first regex example
输出应该是

my
regex
example 
编辑:我试过blow正则表达式,但不起作用

"\\b\\w*[^i]\\w*\\b"
试试这个正则表达式:

\b[^i\s]+\b

说明:

  • \b
    -返回单词和非单词字符之间的0长度匹配
  • [^i\s]+
    -匹配既不是
    i
    也不是空白字符的任何字符的1+次出现次数
  • \b
    -单词边界

试试这个正则表达式:

\b[^i\s]+\b

说明:

  • \b
    -返回单词和非单词字符之间的0长度匹配
  • [^i\s]+
    -匹配既不是
    i
    也不是空白字符的任何字符的1+次出现次数
  • \b
    -单词边界

正则表达式将类似于:

(?i)\\b[a-hj-z]+\\b
我们需要找到单词,为此我们在表达式的结尾和开头使用单词边界
\b
\b
之间的部分是匹配一个符号的类,该符号包含来自
a-h
和来自
j-z
的字母,我们在此范围内未使用
i
字母,所以匹配结果将与您所需的相同。对于匹配的单词,而不仅仅是这个范围内的一个符号,我们使用+表示类需要重复一次或多次。 表达式开头的
(?i)
是一个指示将所有字母解释为不区分大小写的标志

另外,java类的javadoc中已经包含了简单的正则表达式教程,正则表达式如下所示:

(?i)\\b[a-hj-z]+\\b
我们需要找到单词,为此我们在表达式的结尾和开头使用单词边界
\b
\b
之间的部分是匹配一个符号的类,该符号包含来自
a-h
和来自
j-z
的字母,我们在此范围内未使用
i
字母,所以匹配结果将与您所需的相同。对于匹配的单词,而不仅仅是这个范围内的一个符号,我们使用+表示类需要重复一次或多次。 表达式开头的
(?i)
是一个指示将所有字母解释为不区分大小写的标志


简单正则表达式教程已经包含在java类的javadoc中

您尝试了什么?为什么你需要正则表达式来做这个?(拆分和搜索会更容易)@Crazy,更新了我的问题你是如何尝试这个正则表达式的?添加Java代码您尝试了什么?为什么你需要正则表达式来做这个?(拆分和搜索会更容易)@Crazy,更新了我的问题你是如何尝试这个正则表达式的?添加Java代码很好,你能解释一下你的正则表达式吗?非常好的答案+1。不确定OP是否要匹配数字或下划线,在这种情况下,他们可以使用
\b[^i\W\d\u]+\b
@FSm添加了解释。@ctwheels谢谢改进:)太好了,请解释一下正则表达式好吗?非常好的答案+1。但不确定OP是否要匹配数字或下划线,在这种情况下,他们可以使用
\b[^i\W\d\u]+\b
@FSm添加了解释。@ctwheels感谢您的改进:)