البرمجة

استخراج بيانات باستخدام Regex في Java

بالطبع، فهم النصوص واستخراج البيانات منها يعتبر جزءًا مهمًا من عملية البرمجة، ويمكن تحقيق ذلك باستخدام Java. في هذا السياق، يبدو أنك بحاجة إلى استخراج رقم “71713470” وقيمة “STMS” من النص المعطى. دعني أوضح لك كيف يمكن القيام بذلك باستخدام Java.

أولاً، يبدو أن النص محدد بواسطة العلامات و ، لذا يجب علينا استخراج النص من بين هذه العلامات. بعد ذلك، يمكننا استخدام أدوات تحليل النصوص في Java لفحص النص واستخراج الأرقام والقيم منه.

فيما يلي مثال على كيفية تحقيق ذلك في Java:

java
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String input = "

I am having a text as below

\n"
+ "\n" + "
*~*****|****|**|*|***|***|****|**|null|null|**|***|***|null|71713470|STMS#****** \n" +
                       "

\n" +
"\n" +
"

using java i need to get the number 71713470 and STMS values from that string. I have tried all the string methods but invain. Could anyone help on this

";

// Extract text between tags
Pattern pattern = Pattern.compile("(.*?)", Pattern.DOTALL);
Matcher matcher = pattern.matcher(input);
String codeText = "";
if (matcher.find()) {
codeText = matcher.group(1);
}

// Extract number and value using regular expressions
Pattern numberPattern = Pattern.compile("\\|([0-9]+)\\|");
Matcher numberMatcher = numberPattern.matcher(codeText);
String number = "";
if (numberMatcher.find()) {
number = numberMatcher.group(1);
}

Pattern valuePattern = Pattern.compile("\\|(\\w+)#");
Matcher valueMatcher = valuePattern.matcher(codeText);
String value = "";
if (valueMatcher.find()) {
value = valueMatcher.group(1);
}

// Print the extracted number and value
System.out.println("Extracted number: " + number);
System.out.println("Extracted value: " + value);
}
}

في هذا المثال، يتم استخدام التعبيرات العادية لتحديد النص بين علامات ، ثم يتم استخراج الرقم والقيمة من النص المستخرج باستخدام تعابير منفصلة. يمكنك تنفيذ هذا الكود في برنامج Java لاستخراج الرقم "71713470" وقيمة "STMS" من النص المعطى.

المزيد من المعلومات

بالطبع، دعني أوضح المزيد من المعلومات بخصوص الحل الذي قدمته.

في البداية، قمنا باستخدام مكتبة Regex في Java لتحليل النص واستخراج البيانات منه. هذه المكتبة توفر طرقًا قوية للبحث عن أنماط نصوص محددة باستخدام تعابير منتظمة.

ثم استخدمنا نماذج Regex لتحديد الأجزاء المهمة من النص. على سبيل المثال:

  1. استخدمنا التعبير العادي "(.*?)" لاستخراج النص بين علامات و ، مما أعطانا الجزء المهم من النص الذي نريد تحليله.
  2. باستخدام التعبير العادي "\|([0-9]+)\|"، استطعنا تحديد الأرقام الموجودة بين الأنابيب | في النص، وهو ما أعطانا الرقم "71713470".
  3. باستخدام التعبير العادي "\|(\w+)#"، استطعنا تحديد القيمة المتواجدة بعد الرقم مباشرة وحتى وجود الرمز "#"، مما أعطانا القيمة "STMS".

باستخدام هذه العمليات، تمكنا من استخراج البيانات المطلوبة من النص بطريقة فعالة باستخدام Java.

زر الذهاب إلى الأعلى