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
说明:
-返回单词和非单词字符之间的0长度匹配\b
-匹配既不是[^i\s]+
也不是空白字符的任何字符的1+次出现次数i
-单词边界\b
\b[^i\s]+\b
说明:
-返回单词和非单词字符之间的0长度匹配\b
-匹配既不是[^i\s]+
也不是空白字符的任何字符的1+次出现次数i
-单词边界\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感谢您的改进:)