(REGEXを使用して)以下にリストされているテキスト要素からモデルをプルできるようにするためのヘルプを探しています。
- 2007ホンダCR-VLXCLEAN !!
- 2008ホンダアコードEXルーフマグクリーン1オーナー
- 2008ホンダシビックEX-LCUIRTOIT LEATHER
- 2009トヨタカローラS完全装備
定数係数は次のとおりです
。モデルは常に3番目の単語です
よろしくお願いします。
(REGEXを使用して)以下にリストされているテキスト要素からモデルをプルできるようにするためのヘルプを探しています。
定数係数は次のとおりです
。モデルは常に3番目の単語です
よろしくお願いします。
この単純なものを試してください:
(\d+)\s*(\w+)\s*(.+)
グループを取得します。
説明:
\d+ digits (0-9)
(1 or more times, matching the most amount possible)
\s* whitespace (\n, \r, \t, \f, and " ")
(0 or more times, matching the most amount possible)
\w+ word characters (a-z, A-Z, 0-9, _)
(1 or more times, matching the most amount possible)
.+ any character except \n
(1 or more times, matching the most amount possible)
正規表現と照合して\d{4}
最初の 4 桁の数字 (年) を取得し、それをスペースで分割して (使用している言語に関係なく)、そこから 2 番目と 3 番目の単語を取得します。
Ruby などでスペースを分割して使用することもできます。
array=my_name.split(" ")
year=array[0]
make=array[1]
model=array[2]
基本的に、正規表現がここでの最良の解決策になるとは思いません。
正規表現を使用する必要がある場合は、
^(\d{4}) +([^ ]+) +([^ ]+) +(.*)$
\1 は製造年、\2 はメーカー、\3 はモデル、\4 はそれ以外です。ただし、単語をスペース以外で区切らない限り (Crown_Victoria など)、2 つの単語 (Crown Victoria など) を含むモデルがある場合、これは機能しません。
このリンクを確認してください:正規表現の実装
([0-9]*).\b([a-zA-z]*).\b([a-zA-z-.]*).\b(.*)
3 つのグループを取得します。
2007年
ホンダ
編集
C# 言語を使用している場合、これが取得する方法です。model
string page = "2007 Honda CR-V LX CLEAN !!";
Regex reg = new Regex(@"(?<year>[0-9]*).\b(?<make>[a-zA-z]*).\b(?<model>[a-zA-z-.]*).\b(?<rest>.*)");
MatchCollection mc = reg.Matches(page);
foreach (Match m in mc)
{
MessageBox.Show(m.Groups["model"]);
}