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


對於兩段文本

這句話里有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());
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM