1. 程式人生 > >正則表達式之不區分大小寫的匹配

正則表達式之不區分大小寫的匹配

constant names text nts ostream ons 區分 main port

對於兩段文本

這句話裏有two個word。
這句話裏有tWo個WoRd。

我希望用同一個正則表達式將其中的單詞two、word、tWo、WoRd提取出來

這時候就須要用到不區分大小寫的匹配模式

C++示例

#include <iostream>
#include <regex>
using namespace std;
int main()
{
    string text = "這句話裏有two個word。";
    regex re("[a-z]+");
    sregex_iterator itr1(text.begin(), text.end(), re);
    sregex_iterator itr2;
    
for (sregex_iterator itr = itr1; itr != itr2; ++itr) { cout << itr->str() << endl; } string text2 = "這句話裏有tWo個WoRd。"; regex re2("[a-z]+", regex_constants::icase); //不區分大小寫的匹配 sregex_iterator beginIterator(text2.begin(), text2.end(), re2); sregex_iterator endIterator;
for (sregex_iterator itr = beginIterator; itr != endIterator; ++itr) { cout << itr->str() << endl; } return 0; }

Java示例

import static java.lang.System.out;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularExpressionDemo {

    
public static void main(String[] args) { String text = "這句話裏有tWo個WoRd。"; Pattern pattern = Pattern.compile("[a-z]+", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(text); while (matcher.find()) { out.println(matcher.group()); } } }

正則表達式之不區分大小寫的匹配