PDA

View Full Version : درخواست Regex



Hadi-Hashemi
جمعه 09 آبان 1393, 12:41 عصر
سلام دوستان

درخواست Regex برای عبارت زیر:


int x1,x2,x3;

قبل و بعد از ',' میشه فاصله هم باشه.

بجای x1 و x2 و x3 میشه هر کلمه ای باشه.

مثلا:


int ali, x2, hadi;

pedram.11
جمعه 09 آبان 1393, 13:33 عصر
سلام:

int (.+),(.+),(.+);

Hadi-Hashemi
جمعه 09 آبان 1393, 13:55 عصر
سلام:

int (.+),(.+),(.+);

مرسی.

ولی باز یه مشکلی دارم اینکه x1 ها فقط باید از حروف و عدد باشن. مثلا این رو نباید قبول کنه:


int x1,ws66+ref,x3;

و یک سوال دیگه:

اگه تعداد x ها متغییر باشه چی؟

مثلا الان 3تا رو نوشتین شما و من 4 تا و یا 2 تا x داشته باشم قبول نمیکنه. میشه کاریش کرد؟؟

pedram.11
جمعه 09 آبان 1393, 14:01 عصر
برای حروف و عدد و تعداد نامحدود:

int ([a-zA-Z0-9],?\s?)+;

اسماعیل ابراهیمی
جمعه 09 آبان 1393, 14:49 عصر
اینم یه مدل دیگه :

using System;
using System.Text.RegularExpressions;


namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
Regex rg = new Regex(@"int [a-z A-Z _]+[\w]*,[a-z A-Z _]+[\w]*,[a-z A-Z _]+[\w]*;");


string inputString=Console.ReadLine();


if (rg.IsMatch(inputString))
{
Console.WriteLine("String is OK ...");
}
else
{
Console.WriteLine("String is Wrong !");
}
Console.ReadLine();
}
}
}

Hadi-Hashemi
جمعه 09 آبان 1393, 20:06 عصر
اینم یه مدل دیگه :

using System;
using System.Text.RegularExpressions;


namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
Regex rg = new Regex(@"int [a-z A-Z _]+[\w]*,[a-z A-Z _]+[\w]*,[a-z A-Z _]+[\w]*;");


string inputString=Console.ReadLine();


if (rg.IsMatch(inputString))
{
Console.WriteLine("String is OK ...");
}
else
{
Console.WriteLine("String is Wrong !");
}
Console.ReadLine();
}
}
}




جناب آقای ابراهیمی مرسی از جوابتون.
فقط تو این مورد اشتباه جواب میداد که با کمی تغییر درستش کردم


int a li , x2, hadi;"

یا این مورد:

int ali;

نتیجه نهایی:

"int ( *[a-zA-Z_][A-Za-z0-9_]* *)+(, *[a-zA-Z_][A-Za-z0-9_]* *)*( *;)$";