import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "([[]WebMethod.*[]])\\s*public\\s+static\\s+void[^\\{]*(?<prevTry>\\{\\s*)(?<try>.{3})";
final String string = "using Framework.Core.Impls.Dependency;\n"
+ "using Framework.Core.Impls.Extensions;\n"
+ "using Framework.Data.Models;\n"
+ "using Framework.DataAccess.Interfaces;\n"
+ "using KocSistem.LeasingCommon;\n"
+ "using Leasing.Data.Modules;\n"
+ "using Leasing.Service.Interfaces;\n"
+ "using System;\n"
+ "using System.Collections.Generic;\n"
+ "using System.Linq;\n"
+ "using System.Web;\n"
+ "using System.Web.Services;\n"
+ "using System.Web.UI;\n"
+ "using System.Web.UI.WebControls;\n"
+ "using Telerik.Web.UI;\n\n"
+ "namespace LeasingWeb.Test\n"
+ "{\n"
+ " public partial class EF_DEMO : AppCode.BasePage\n"
+ " {\n"
+ " protected void Page_Load(object sender, EventArgs e)\n"
+ " {\n"
+ " Framework.Core.Logging.LoggerFactory.Info(\"TEST\");\n"
+ " Framework.Core.Logging.LoggerFactory.Error(new Exception(\"TEST EXC\"));\n"
+ " Framework.Core.Logging.LoggerFactory.Debug(\"DEBUG\");\n\n"
+ " BindGrid();\n\n"
+ " //this.ShowMessage(\"test\", KocSistem.LeasingCommon.MessageSeverity.Success);\n"
+ " }\n\n"
+ " /*public void Page_Error(object sender, EventArgs e)\n"
+ " { \n"
+ " HandleError();\n"
+ " }*/\n\n"
+ " private void BindGrid()\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " var result = demo.GetPagedList(new Framework.Data.Models.PagedListInput\n"
+ " {\n"
+ " PageIndex = 1,\n"
+ " PageSize = 3,\n"
+ " Sorting = \"Id\",\n"
+ " SortType = Framework.Data.Models.PagedListSortType.Descending\n"
+ " });\n"
+ " grdUsers.DataSource = result.Items;\n"
+ " grdUsers.DataBind();\n"
+ " }\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static string GetGridData(KsGridPagingParams ksGridPagingParams, \n\n"
+ " string a_customParams123)\n"
+ " {\n"
+ " /*using (var da = DependencyFactory.Resolve<IDataBaseFactory>().GetDataBase())\n"
+ " {\n"
+ " var input = new PagedListInput();\n"
+ " input.TableName = \"DEMO_MASTER\"; // Tablo adı\n"
+ " input.SelectColumns = \"*\"; \n"
+ " input.PageIndex = ksGridPagingParams.PageIndex;\n"
+ " input.PageSize = ksGridPagingParams.PageSize;\n\n"
+ " input.Filter = ksGridPagingParams.Filters.ToFilterSqlString(ksGridPagingParams.ModelFields);\n"
+ " input.Sorting = ksGridPagingParams.Sorts.ToSortString();\n\n"
+ " var result = da.GetPagedList(input);\n"
+ " return result.ToJsonString();\n"
+ " }*/\n\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " return demo.GetPagedList(ksGridPagingParams).ToJsonString();\n"
+ " //return demo.GetAll().ToJsonString();\n"
+ " }\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static string SaveGridRow(DemoMasterData model, string customParams)\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " return demo.Save(model).ToJsonString();\n"
+ " }\n"
+ " }\n"
+ " [WebMethod(true)]\n"
+ " public static void DeleteGridRow(DemoMasterData model, string customParams)\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " demo.Delete(model);\n"
+ " }\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static string GetDetailGridData(KsGridPagingParams ksGridPagingParams)\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoDetailService>())\n"
+ " {\n"
+ " var parentId = ksGridPagingParams.ParentId.ToInt();\n"
+ " //return demo.GetPagedList(ksGridPagingParams, d => d.MasterId == parentId).ToJsonString(); ;\n"
+ " return demo.GetPagedList(ksGridPagingParams).ToJsonString(); ;\n"
+ " }\n"
+ " }\n"
+ " [WebMethod(true)]\n"
+ " public static string SaveDetailGridRow(DemoDetailData model)\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoDetailService>())\n"
+ " {\n"
+ " return demo.Save(model).ToJsonString();\n"
+ " }\n"
+ " }\n"
+ " [WebMethod(true)]\n"
+ " public static void DeleteDetailGridRow(DemoDetailData model)\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoDetailService>())\n"
+ " {\n"
+ " demo.Delete(model);\n"
+ " }\n"
+ " }\n\n\n"
+ " struct City\n"
+ " {\n"
+ " public int CityId { get; set; }\n"
+ " public string Name { get; set; }\n"
+ " }\n"
+ " struct District\n"
+ " {\n"
+ " public int DistrictId { get; set; }\n"
+ " public string Name { get; set; }\n"
+ " public int CityId { get; set; }\n"
+ " }\n"
+ " struct Address\n"
+ " {\n"
+ " public int AddressId { get; set; }\n"
+ " public string Name { get; set; }\n"
+ " }\n"
+ " struct Phone\n"
+ " {\n"
+ " public int PhoneId { get; set; }\n"
+ " public int DistrictId { get; set; }\n"
+ " public int AddressId { get; set; }\n"
+ " public string Number { get; set; }\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static object GetCities(KsFilterParams filter)\n"
+ " {\n"
+ " var cities = new List<City>();\n\n"
+ " if (cities is null)\n"
+ " {\n"
+ " cities = new List<City>();\n"
+ " }\n\n"
+ " cities.Add(new City { CityId = 1, Name = \"İstanbul\" });\n"
+ " cities.Add(new City { CityId = 2, Name = \"Ankara\" });\n"
+ " cities.Add(new City { CityId = 3, Name = \"İzmir\" });\n"
+ " cities.Add(new City { CityId = 4, Name = \"Bilecik\" });\n\n\n"
+ " for (int i = 5; i <= 10; i++)\n"
+ " {\n"
+ " cities.Add(new City { CityId = i, Name = string.Format(\"Test Şehir({0})\", i) });\n"
+ " }\n\n"
+ " return cities.Filter(filter);\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static object GetDistricts(KsFilterParams filter)\n"
+ " {\n"
+ " var districts = new List<District>();\n\n"
+ " districts.Add(new District { CityId = 1, DistrictId = 1, Name = \"Esenler\" });\n"
+ " districts.Add(new District { CityId = 1, DistrictId = 2, Name = \"Güngören\" });\n"
+ " districts.Add(new District { CityId = 1, DistrictId = 3, Name = \"Bağcılar\" });\n\n"
+ " districts.Add(new District { CityId = 2, DistrictId = 4, Name = \"Çankaya\" });\n"
+ " districts.Add(new District { CityId = 2, DistrictId = 5, Name = \"Keçiören\" });\n\n"
+ " districts.Add(new District { CityId = 3, DistrictId = 6, Name = \"Karşıyaka\" });\n"
+ " districts.Add(new District { CityId = 3, DistrictId = 7, Name = \"Göztepe\" });\n\n\n"
+ " for (int i = 8; i <= 20; i++)\n"
+ " {\n"
+ " districts.Add(new District { DistrictId = i, CityId = (i % 990) + 1, Name = string.Format(\"Test İlçe({0})\", i) });\n"
+ " }\n\n\n"
+ " return districts.Filter(filter);\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static object GetAddresses(KsFilterParams filter)\n"
+ " {\n"
+ " var addresses = new List<Address>();\n\n"
+ " addresses.Add(new Address { AddressId = 1, Name = \"Adres1\" });\n"
+ " addresses.Add(new Address { AddressId = 2, Name = \"Adres2\" });\n"
+ " addresses.Add(new Address { AddressId = 3, Name = \"Adres3\" });\n"
+ " addresses.Add(new Address { AddressId = 4, Name = \"Adres4\" });\n"
+ " addresses.Add(new Address { AddressId = 5, Name = \"Adres5\" });\n"
+ " addresses.Add(new Address { AddressId = 6, Name = \"Adres6\" });\n"
+ " addresses.Add(new Address { AddressId = 7, Name = \"Adres7\" });\n\n"
+ " return addresses.Filter(filter);\n"
+ " }\n"
+ " [WebMethod(true)]\n"
+ " public static object GetPhones(KsFilterParams filter)\n"
+ " {\n"
+ " var phones = new List<Phone>();\n\n"
+ " phones.Add(new Phone { AddressId = 1, DistrictId = 1, PhoneId = 1, Number = \"11\" });\n"
+ " phones.Add(new Phone { AddressId = 1, DistrictId = 1, PhoneId = 2, Number = \"22\" });\n"
+ " phones.Add(new Phone { AddressId = 2, DistrictId = 1, PhoneId = 3, Number = \"33\" });\n"
+ " phones.Add(new Phone { AddressId = 3, DistrictId = 2, PhoneId = 4, Number = \"44\" });\n"
+ " phones.Add(new Phone { AddressId = 2, DistrictId = 1, PhoneId = 5, Number = \"55\" });\n"
+ " phones.Add(new Phone { AddressId = 4, DistrictId = 3, PhoneId = 6, Number = \"66\" });\n"
+ " phones.Add(new Phone { AddressId = 6, DistrictId = 7, PhoneId = 7, Number = \"77\" });\n\n\n"
+ " return phones.Filter(filter);\n"
+ " }\n\n"
+ " struct ComboData\n"
+ " {\n"
+ " public int Id { get; set; }\n"
+ " public string Text { get; set; }\n"
+ " }\n\n"
+ " [WebMethod(true)]\n"
+ " public static string GetComboData()\n"
+ " {\n"
+ " var data = new List<ComboData> {\n"
+ " new ComboData { Id = 1, Text =\"Genel\" },\n"
+ " new ComboData { Id = 2, Text =\"Özel\" },\n"
+ " new ComboData { Id = 3, Text =\"Diğer\" }\n"
+ " };\n\n"
+ " return data.ToJsonString();\n"
+ " }\n\n"
+ " protected void btnNew_Click(object sender, EventArgs e)\n"
+ " {\n"
+ " try\n"
+ " {\n"
+ " Response.Redirect(\"EF_DEMO_DETAIL.aspx\");\n"
+ " }\n"
+ " catch (Exception ex) { this.PublishException(ex); }\n"
+ " }\n\n"
+ " protected void grdUsers_ItemCommand(object source, GridCommandEventArgs e)\n"
+ " {\n"
+ " var dataItem = e.Item.DataItem as DemoMasterData;\n\n"
+ " //if (e.CommandName == \"Detail\")\n"
+ " //{\n"
+ " // Response.Redirect(string.Format(\"EF_DEMO_DETAIL.aspx?ID={0}\", dataItem.Id));\n"
+ " //}\n"
+ " if (e.CommandName == \"Delete\")\n"
+ " {\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " demo.Delete(dataItem.Id);\n"
+ " }\n"
+ " Response.Redirect(\"EF_DEMO.aspx\");\n"
+ " }\n"
+ " }\n\n"
+ " protected void btnSaveAll_Click(object sender, EventArgs e)\n"
+ " {\n"
+ " try\n"
+ " {\n"
+ " //this.ShowMessage(\"errTest\", KocSistem.LeasingCommon.MessageSeverity.Error);\n"
+ " string x = null;\n"
+ " var length = x.Length;\n\n"
+ " using (var demo = DependencyFactory.Resolve<IDemoService>())\n"
+ " {\n"
+ " var identityNumber = demo.GetAll().Max(u => u.Identity_Number);\n\n"
+ " var users = new List<DemoMasterData>();\n"
+ " users.Add(new DemoMasterData { Identity_Number = ++identityNumber, NameSurname = \"1\" });\n"
+ " users.Add(new DemoMasterData { Identity_Number = ++identityNumber, NameSurname = \"2\" });\n"
+ " users.Add(new DemoMasterData { Identity_Number = ++identityNumber, NameSurname = \"3\" });\n"
+ " users.Add(new DemoMasterData { Identity_Number = ++identityNumber, NameSurname = \"4\" });\n"
+ " demo.SaveAll(users);\n"
+ " }\n"
+ " }\n"
+ " catch (Exception ex)\n"
+ " {\n"
+ " if (chkHandleExc.Checked)\n"
+ " {\n"
+ " this.PublishException(ex);\n"
+ " return;\n"
+ " }\n\n"
+ " throw; \n"
+ " }\n"
+ " }\n\n"
+ " protected void btnWordToPdf_Click(object sender, EventArgs e)\n"
+ " {\n"
+ " try\n"
+ " {\n"
+ " var application = new Microsoft.Office.Interop.Word.Application();\n"
+ " var document = application.Documents.Open(txtWordPath.Text);\n"
+ " document.Activate();\n"
+ " var pdfName = \"TestPDF_\" + DateTime.Now.ToString(\"yyyyMMddHHmmss\") + \".pdf\";\n"
+ " document.SaveAs2(Server.MapPath(ReportingUtility.ExcelTempPath + pdfName), Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);\n"
+ " document.Close();\n\n"
+ " OpenPopup(Request.GetApplicationPath() + \"/Reporting/Temporary/\" + pdfName);\n"
+ " }\n"
+ " catch (Exception ex)\n"
+ " {\n"
+ " this.PublishException(ex);\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ "}";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html