Java 中replaceAll如何忽略大小写呢?
方式一:在正则表达式前面添加(?i)
@Test public void test_replaceAll1() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String replacement = "cccc"; System.out.println(input); System.out.println(input.replaceAll("(?i)java", replacement)); }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
方式二:使用Matcher 的appendReplacement 方法
@Test public void test_replaceAll2() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String regex = "java"; String replacement = "cccc"; StringBuffer sb = replaceAll2(input, regex, replacement); System.out.println(input); System.out.println(sb); } /*** * replaceAll,忽略大小写 * * @param input * @param regex * @param replacement * @return */ public StringBuffer replaceAll2(String input, String regex, String replacement) { Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(input); StringBuffer sb = new StringBuffer(); boolean result = m.find(); while (result) { m.appendReplacement(sb, replacement); result = m.find(); } m.appendTail(sb); return sb; }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
方式三:使用Matcher 的replaceAll
/*** * replaceAll,忽略大小写 * * @param input * @param regex * @param replacement * @return */ public String replaceAll3(String input, String regex, String replacement) { Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(input); String result = m.replaceAll(replacement); return result; } @Test public void test_replaceAll3() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String regex = "java"; String replacement = "cccc"; String sb = replaceAll3(input, regex, replacement); System.out.println(input); System.out.println(sb); }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
参考:
http://hw1287789687.iteye.com/blog/2150897
相关推荐
默认情况下,Java的正则表达式是区分大小写的。这意味着如果在正则表达式中定义了一个小写字母,它将不会匹配相应的大写字母,反之亦然。 2. **忽略大小写** 要使正则表达式不区分大小写,可以在创建`Pattern`...
2. **忽略大小写**:为了使判断不区分大小写,我们可以将字符串转换为全大写或全小写,这可以通过`toUpperCase()`或`toLowerCase()`方法完成。 3. **判断回文**:现在我们得到了一个只包含字母和数字的新字符串,接...
- `replace`方法区分大小写,所以如果你想替换的字符是大小写敏感的,要注意这一点。 - 如果`target`不存在于原始字符串中,`replace`方法将返回原始字符串而不做任何改变。 - 对于`replace(CharSequence target, ...
- `equals()`方法:用于比较字符串内容是否相同,不区分大小写。 - `equalsIgnoreCase()`方法:与`equals()`类似,但忽略大小写。 - `compareTo()`方法:基于Unicode值比较字符串,返回值可用来判断字符串的前后...
i)`表示不区分大小写,`(?'name'...)`用于命名捕获组,这些都是编写复杂正则表达式时的重要工具。 在实际应用中,我们经常需要处理用户输入,这时可以使用正则表达式来验证输入的有效性。例如,电子邮件地址的验证...
- **忽略大小写比较 (`equalsIgnoreCase`)**:类似于 `equals` 方法,但不区分大小写。 ```java public boolean equalsIgnoreCase(String anotherString); ``` #### 5. 获取子字符串 (`substring`) `substring`...
首先,编译了一个不区分大小写的正则表达式"ab",然后在字符串"ABcabdAb"上应用Matcher的find()方法,打印出所有匹配的子串及其位置。接着,使用\\W(非单词字符)作为分隔符,将字符串"one@two#three:four$five...
例如,`/abc/gi`会全局且不区分大小写地查找"abc"。 在Java中,正则表达式的使用方式有所不同,主要通过`java.util.regex`包中的`Pattern`和`Matcher`类来实现。创建正则表达式对象时,需要先编译模式(`Pattern....
- **大小写敏感**:根据需求,可以设定敏感词过滤是否区分大小写。 - **部分匹配**:是否允许敏感词的部分出现,如“敏感”出现在“敏感性”中是否需要过滤。 - **词语边界**:避免中间的字符被误判为敏感词的一部分...
`Pattern`类还提供了多种匹配模式,如`CASE_INSENSITIVE`(不区分大小写)和`DOTALL`(使`.`匹配包括换行符在内的所有字符)。 2. **Matcher类**:`Matcher`是`Pattern`的实例,负责在给定输入上执行匹配操作。它...
- **解释**:`equalsIgnoreCase()` 方法比较两个字符串的内容时,不区分大小写。因此,即使 `str1` 和 `str2` 的大小写不同,该方法仍然返回 `true`。 ##### 2.4 `compareTo()` 方法 - **用途**:按照字典顺序比较...
`compareToIgnoreCase` 方法在比较时不区分大小写。 7. **相等性检查**: - `equals` 方法用于判断两个字符串是否相等,注意它区分大小写。 8. **前缀和后缀检查**: - `startsWith` 检查字符串是否以特定前缀...
3. `compareToIgnoreCase()`:不区分大小写地比较字符串。 五、字符串转换 1. 转换为字符数组:`char[] charArray = str.toCharArray();` 2. 转换为其他类型:`int number = Integer.parseInt(str);`(整数)、`...
16. `compareTo()`和`compareToIgnoreCase()`:比较两个字符串的顺序,`compareTo()`区分大小写,`compareToIgnoreCase()`不区分大小写。 17. `indexOf()`和`lastIndexOf()`:查找字符或子串在字符串中首次出现和...
- `Pattern.flags()`: 可以设置正则表达式的标志,如CASE_INSENSITIVE(不区分大小写)或MULTILINE(多行模式)。 2. **Matcher类**: - `Matcher.matches()`: 检查整个输入字符串是否匹配正则表达式。 - `...
* static Pattern compile(String regex, int flag):编译模式,参数 regex 表示输入的正则表达式,flag 表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写)。 * Matcher match(CharSequence input):获取...
- `Pattern.compile(String regex, int flag)`函数的`flag`参数可以设置不同的匹配行为,如`CASE_INSENSITIVE`使匹配变为不区分大小写。 7. **实例应用**: - 查找、替换字符串:`String result = inputString....
在这里,pattern是一个字符串,指定了正则表达式的模式,attributes是可选的字符串,包含属性"g"、"i"和"m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。例如,创建一个正则表达式来匹配任意数量的数字,...
这里的`regex`参数是你要编译的正则表达式字符串,`flag`参数可以指定匹配模式,例如`CASE_INSENSITIVE`表示不区分大小写。Pattern类还提供了一些其他方法,如`matches(String regex, CharSequence input)`可以直接...
这通常包括去除标点符号、转换为小写(为了不区分大小写)以及根据空格分隔单词。可以使用`String`类的`toLowerCase()`、`replaceAll()`方法完成这些操作。 3. **单词统计**: 为了统计单词,我们可以使用`HashMap...